Print this page
crt: Need a position-independent CRT for PIE
- Implement the greatest possible part of the crt1 in C
- Implement SPARC versions of the ASM sections of crt1
- Build crt1 position-independently, minor ASM updates to be position
  independent
- Implement crt1 with the hook expected by modern GCC to support
  profiling, make gcrt1 a symlink for source compatibility (older GCC
  initializes profiling at firsnt use of _mcount if necessary, so
  doesn't need the gcrt)
- Split the CRT out of developer/library/lint into a separate c-runtime package


 100 
 101 .PARALLEL: $(OBJS)
 102 
 103 all: $(PROG) $(XPG4) $(XPG6) $(LIBPROGS)
 104 
 105 $(PROG): $(EXOBJS)
 106         $(LINK.c) $(EXOBJS) -o $@ $(LDLIBS)
 107         $(POST_PROCESS)
 108 
 109 ex.xpg4: $(XD4) $(XPG4EXOBJS)
 110         $(LINK.c) $(XPG4EXOBJS) -o $@ $(LDLIBS)
 111         $(POST_PROCESS)
 112 
 113 ex.xpg6: $(XD6) $(XPG6EXOBJS)
 114         $(LINK.c) $(XPG6EXOBJS) -o $@ $(LDLIBS)
 115         $(POST_PROCESS)
 116 
 117 $(XD4)/compile.o $(XD6)/compile.o: ../../expr/compile.c
 118         $(COMPILE.c) -o $@ ../../expr/compile.c
 119 
 120 %values-xpg4.o: ../../../lib/common/common/values-xpg4.c
 121         $(COMPILE.c) -o $@ ../../../lib/common/common/values-xpg4.c
 122 
 123 %values-xpg6.o: ../../../lib/common/common/values-xpg6.c
 124         $(COMPILE.c) -o $@ ../../../lib/common/common/values-xpg6.c
 125 
 126 $(XPG4EXOBJS): $(XD4)
 127 
 128 $(XPG6EXOBJS): $(XD6)
 129 
 130 $(XD4)/%.o:     %.c
 131         $(COMPILE.c) -o $@ $<
 132 
 133 $(XD6)/%.o:     %.c
 134         $(COMPILE.c) -o $@ $<
 135 
 136 $(XD4):
 137         -@mkdir -p $@
 138 
 139 $(XD6):
 140         -@mkdir -p $@
 141 
 142 exrecover:      $(EXRECOVEROBJS)
 143         $(LINK.c) $(EXRECOVEROBJS) -o $@ $(LDLIBS)
 144         $(POST_PROCESS)




 100 
 101 .PARALLEL: $(OBJS)
 102 
 103 all: $(PROG) $(XPG4) $(XPG6) $(LIBPROGS)
 104 
 105 $(PROG): $(EXOBJS)
 106         $(LINK.c) $(EXOBJS) -o $@ $(LDLIBS)
 107         $(POST_PROCESS)
 108 
 109 ex.xpg4: $(XD4) $(XPG4EXOBJS)
 110         $(LINK.c) $(XPG4EXOBJS) -o $@ $(LDLIBS)
 111         $(POST_PROCESS)
 112 
 113 ex.xpg6: $(XD6) $(XPG6EXOBJS)
 114         $(LINK.c) $(XPG6EXOBJS) -o $@ $(LDLIBS)
 115         $(POST_PROCESS)
 116 
 117 $(XD4)/compile.o $(XD6)/compile.o: ../../expr/compile.c
 118         $(COMPILE.c) -o $@ ../../expr/compile.c
 119 
 120 %values-xpg4.o: ../../../lib/crt/common/values-xpg4.c
 121         $(COMPILE.c) -o $@ ../../../lib/crt/common/values-xpg4.c
 122 
 123 %values-xpg6.o: ../../../lib/crt/common/values-xpg6.c
 124         $(COMPILE.c) -o $@ ../../../lib/crt/common/values-xpg6.c
 125 
 126 $(XPG4EXOBJS): $(XD4)
 127 
 128 $(XPG6EXOBJS): $(XD6)
 129 
 130 $(XD4)/%.o:     %.c
 131         $(COMPILE.c) -o $@ $<
 132 
 133 $(XD6)/%.o:     %.c
 134         $(COMPILE.c) -o $@ $<
 135 
 136 $(XD4):
 137         -@mkdir -p $@
 138 
 139 $(XD6):
 140         -@mkdir -p $@
 141 
 142 exrecover:      $(EXRECOVEROBJS)
 143         $(LINK.c) $(EXRECOVEROBJS) -o $@ $(LDLIBS)
 144         $(POST_PROCESS)