diff --git a/racket/src/cfg-racket b/racket/src/cfg-racket index 336f1d3d6c..61487cc6e6 100755 --- a/racket/src/cfg-racket +++ b/racket/src/cfg-racket @@ -691,6 +691,7 @@ x_libraries x_includes DYN_CFLAGS PLAIN_CC +POST_LINKER MZLINKER REZ CC_FOR_BUILD @@ -3366,6 +3367,8 @@ LIBRACKET_DEP="" EXE_SUFFIX= SO_SUFFIX=.so +POST_LINKER="echo" + MMM=3m MMM_INSTALLED= MMM_CAP_INSTALLED= @@ -4803,6 +4806,7 @@ case "$host_os" in ;; netbsd*) LIBS="$LIBS -rdynamic" + POST_LINKER="paxctl +m" ;; irix*) enable_cgcdefault="yes" @@ -6994,6 +6998,7 @@ LIBS="$LIBS $EXTRALIBS" + mk_needed_dir() diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in index 76a6dd76aa..90201bc695 100644 --- a/racket/src/cs/c/Makefile.in +++ b/racket/src/cs/c/Makefile.in @@ -200,9 +200,11 @@ EMBED_DEPS = $(srcdir)/embed-boot.rkt racketcs@NOT_OSX@@NOT_MINGW@: raw_racketcs petite-v.boot scheme-v.boot racket-v.boot $(EMBED_DEPS) $(BOOTSTRAP_RACKET) $(srcdir)/embed-boot.rkt @ELF_COMP@ @BOOT_COMPRESS_COMP@ raw_racketcs racketcs petite-v.boot scheme-v.boot racket-v.boot + @POST_LINKER@ racketcs gracketcs@NOT_OSX@@NOT_MINGW@: raw_gracketcs petite-v.boot scheme-v.boot racket-v.boot $(EMBED_DEPS) $(BOOTSTRAP_RACKET) $(srcdir)/embed-boot.rkt @ELF_COMP@ @BOOT_COMPRESS_COMP@ raw_gracketcs gracketcs petite-v.boot scheme-v.boot racket-v.boot + @POST_LINKER@ gracketcs SCHEME_LIBS = $(SCHEME_TARGET_INC)/libkernel.a \ $(SCHEME_TARGET_INC)/../../lz4/lib/liblz4.a \ @@ -212,9 +214,11 @@ BOOT_OBJS = boot.o $(SCHEME_LIBS) rktio/librktio.a raw_racketcs: main.o boot.o $(BOOT_OBJS) $(CC) $(CFLAGS) -o raw_racketcs main.o $(BOOT_OBJS) $(LDFLAGS) $(LIBS) + @POST_LINKER@ raw_racketcs raw_gracketcs: grmain.o boot.o $(BOOT_OBJS) $(CC) $(CFLAGS) -o raw_gracketcs grmain.o $(BOOT_OBJS) $(LDFLAGS) $(LIBS) + @POST_LINKER@ raw_gracketcs petite-v.boot: $(SCHEME_TARGET_INC)/petite.boot $(SCHEME) --script $(srcdir)/to-vfasl.ss @BOOT_COMPRESS_COMP@ @TT_CROSS_MODE@ $(SCHEME_TARGET_INC)/petite.boot petite-v.boot diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure index 4c4ba6c21e..be589933d6 100755 --- a/racket/src/cs/c/configure +++ b/racket/src/cs/c/configure @@ -656,6 +656,7 @@ RACKET RKTL_POST RKTL_PRE INCLUDEDEP +POST_LINKER RKTLINKER STRIP_LIB_DEBUG STRIP_DEBUG @@ -2839,6 +2840,7 @@ CONFIGURE_RACKET_SO_COMPILE="" COMPRESS_COMP="" BOOT_COMPRESS_COMP="" ELF_COMP="" +POST_LINKER="echo" FRAMEWORK_INSTALL_DIR='$(libpltdir)' FRAMEWORK_PREFIX='@executable_path/../lib/' @@ -3910,8 +3912,8 @@ case "$host_os" in CFLAGS="${CFLAGS} -I/usr/local/include" LIBS="${LIBS} -L/usr/local/lib -liconv -lm -lpthread -lossp-uuid" LDFLAGS="${LDFLAGS} -Wl,-zwxneeded" - # Can't strip until ELF lookup added to startup - enable_strip=no + CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" + ELF_COMP="--expect-elf" ;; bitrig*) ;; @@ -3920,8 +3922,9 @@ case "$host_os" in netbsd*) MACH_OS=nb LIBS="${LIBS} /usr/lib/i18n/libiconv_std.a -lm -lpthread" - # Can't strip until ELF lookup added to startup - enable_strip=no + CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" + ELF_COMP="--expect-elf" + POST_LINKER="paxctl +m" ;; irix*) ;; @@ -5044,6 +5047,7 @@ CPPFLAGS="$CPPFLAGS $PREFLAGS" + makefiles="Makefile" diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac index 0e37dab0cb..83c48f44c1 100644 --- a/racket/src/cs/c/configure.ac +++ b/racket/src/cs/c/configure.ac @@ -125,6 +125,7 @@ CONFIGURE_RACKET_SO_COMPILE="" COMPRESS_COMP="" BOOT_COMPRESS_COMP="" ELF_COMP="" +POST_LINKER="echo" FRAMEWORK_INSTALL_DIR='$(libpltdir)' FRAMEWORK_PREFIX='@executable_path/../lib/' @@ -191,8 +192,8 @@ case "$host_os" in CFLAGS="${CFLAGS} -I/usr/local/include" LIBS="${LIBS} -L/usr/local/lib -liconv -lm -lpthread -lossp-uuid" LDFLAGS="${LDFLAGS} -Wl,-zwxneeded" - # Can't strip until ELF lookup added to startup - enable_strip=no + CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" + ELF_COMP="--expect-elf" ;; bitrig*) ;; @@ -201,8 +202,9 @@ case "$host_os" in netbsd*) MACH_OS=nb LIBS="${LIBS} /usr/lib/i18n/libiconv_std.a -lm -lpthread" - # Can't strip until ELF lookup added to startup - enable_strip=no + CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" + ELF_COMP="--expect-elf" + POST_LINKER="paxctl +m" ;; irix*) ;; @@ -629,6 +631,7 @@ AC_SUBST(ICP) AC_SUBST(STRIP_DEBUG) AC_SUBST(STRIP_LIB_DEBUG) AC_SUBST(RKTLINKER) +AC_SUBST(POST_LINKER) AC_SUBST(INCLUDEDEP) AC_SUBST(RKTL_PRE) AC_SUBST(RKTL_POST) diff --git a/racket/src/gracket/Makefile.in b/racket/src/gracket/Makefile.in index edf04e5fc4..23e4c64cba 100644 --- a/racket/src/gracket/Makefile.in +++ b/racket/src/gracket/Makefile.in @@ -110,6 +110,7 @@ both: gracket@CGC@ : $(RACKETDEPS) grmain.@LTO@ $(GRACKETOBJECTS) $(MRSTATIC_STUB) $(GRACKETRESDEP) $(GRACKETLINKER) $(GRACKETLDFLAGS) $(MRSTATIC) -o gracket@CGC@ $(GRACKETOBJECTS) $(GRACKETRES) $(GRACKETLDLIBS) $(MRSTATIC_STUB) + @POST_LINKER@ gracket@CGC@ gres.o : $(srcdir)/../worksp/gracket/gracket.rc @WINDRES@ -i $(srcdir)/../worksp/gracket/gracket.rc -o gres.o diff --git a/racket/src/gracket/gc2/Makefile.in b/racket/src/gracket/gc2/Makefile.in index cebc9b0741..0b04e820f2 100644 --- a/racket/src/gracket/gc2/Makefile.in +++ b/racket/src/gracket/gc2/Makefile.in @@ -104,6 +104,7 @@ GRACKETMZOBJS_la = ../gracket@MMM@@NOT_OSX@@NOT_MINGW@: grmain.@LTO@ ../../racket/libracket3m.@LIBSFX@ $(LIBRKTIO_@LIBSFX@) $(GRACKETLINKER) $(GRACKETLDFLAGS) -o ../gracket@MMM@ grmain.@LTO@ ../../racket/libracket3m.@LIBSFX@ $(GRACKETMZOBJS_@LIBSFX@) $(GRACKETLIBS_@LIBSFX@) + @POST_LINKER@ ../gracket@MMM@ ../gracket@MMM@@EXE_SUFFIX@@MINGW@: grmain.@LTO@ ../../racket/MemoryModule.@LTO@ ../../racket/gc2/libracket3m.dll.a ../gres.o $(GRACKETLINKER) -mwindows $(GRACKETLDFLAGS) -o ../gracket@MMM@@EXE_SUFFIX@ grmain.@LTO@ ../../racket/MemoryModule.@LTO@ ../gres.o ../../racket/gc2/libracket3m.dll.a $(GRACKETMZOBJS_@LIBSFX@) $(GRACKETLIBS_@LIBSFX@) -l delayimp -static-libgcc diff --git a/racket/src/racket/Makefile.in b/racket/src/racket/Makefile.in index fa20959676..b4a01d9bf6 100644 --- a/racket/src/racket/Makefile.in +++ b/racket/src/racket/Makefile.in @@ -203,6 +203,7 @@ sproc.@LTO@: @GCDIR@/sproc.@LTO@ racket@CGC@@NOT_OSX@@NOT_MINGW@: libracket.@LIBSFX@ libmzgc.@LIBSFX@ main.@LTO@ $(LIBRKTIO_FOR_LIB) $(SPECIALIZINGOBJECTS) @MZLINKER@ -o racket@CGC@ main.@LTO@ $(SPECIALIZINGOBJECTS) libracket.@LIBSFX@ libmzgc.@LIBSFX@ $(LIBRKTIO_FOR_LIB) @LDFLAGS@ @LIBS@ + @POST_LINKER@ racket@CGC@ mzcom@CGC@@NOT_MINGW@: $(NOOP) diff --git a/racket/src/racket/configure.ac b/racket/src/racket/configure.ac index f99dd7b1b2..ee663abb52 100644 --- a/racket/src/racket/configure.ac +++ b/racket/src/racket/configure.ac @@ -284,6 +284,8 @@ LIBRACKET_DEP="" EXE_SUFFIX= SO_SUFFIX=.so +POST_LINKER="echo" + MMM=3m MMM_INSTALLED= MMM_CAP_INSTALLED= @@ -574,6 +576,7 @@ case "$host_os" in ;; netbsd*) LIBS="$LIBS -rdynamic" + POST_LINKER="paxctl +m" ;; irix*) enable_cgcdefault="yes" @@ -1437,6 +1440,7 @@ AC_SUBST(STRIP_LIB_DEBUG) AC_SUBST(CC_FOR_BUILD) AC_SUBST(REZ) AC_SUBST(MZLINKER) +AC_SUBST(POST_LINKER) AC_SUBST(PLAIN_CC) AC_SUBST(DYN_CFLAGS) diff --git a/racket/src/racket/gc2/Makefile.in b/racket/src/racket/gc2/Makefile.in index 0ba90f57a6..fac4faea52 100644 --- a/racket/src/racket/gc2/Makefile.in +++ b/racket/src/racket/gc2/Makefile.in @@ -587,6 +587,7 @@ EXTRA_OBJS_L = $(EXTRA_GMP) ../src/unwind.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB) $(L ../racket@MMM@@NOT_OSX@@NOT_MINGW@: main.@LTO@ ../libracket3m.@LIBSFX@ $(LIBRKTIO_FOR_LIB) cd ..; @MZLINKER@ -o racket@MMM@ @PROFFLAGS@ gc2/main.@LTO@ libracket3m.@LIBSFX@ $(LIBRKTIO_UP_FOR_LIB) @LDFLAGS@ $(LIBS) + @POST_LINKER@ ../racket@MMM@ # The above "cd .." prevents a problem with libtool's generated script in --enable-shared mode, # at least for Mac OS X. Beware of changing LIBS or LDFLAGS to inclucde something with a relative