From bb462baf307f489e5ffb6e37ac198bd95fb8aa71 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 8 May 2021 09:32:37 -0600 Subject: [PATCH] cs: link Unix variants of `racket` with exported symbols I'm not sure this is a good idea, but it doesn't apear to be a particularly bad idea. Exporting symbols just makes the executable size slightly larger. Closes #3617 --- racket/src/cs/c/Makefile.in | 5 +++-- racket/src/cs/c/configure | 8 ++++++++ racket/src/cs/c/configure.ac | 7 +++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in index 7be6890b13..f223a00ac9 100644 --- a/racket/src/cs/c/Makefile.in +++ b/racket/src/cs/c/Makefile.in @@ -22,6 +22,7 @@ BASE_CFLAGS = @CFLAGS@ @CPPFLAGS@ CFLAGS = $(BASE_CFLAGS) -I$(SCHEME_TARGET_INC) -I$(srcdir)/../../rktio -Irktio -I. LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ +LINK_DYNAMIC = @LINK_DYNAMIC@ AR = @AR@ ARFLAGS = @ARFLAGS@ RANLIB = @RANLIB@ @@ -229,11 +230,11 @@ BOOT_OBJ_DEPS = boot.o $(SCHEME_LIB_DEPS) rktio/librktio.a BOOT_OBJS = boot.o $(SCHEME_LIBS) rktio/librktio.a raw_racketcs@NOT_OSX@: main.o boot.o $(BOOT_OBJ_DEPS) - $(CC) $(CFLAGS) -o raw_racketcs main.o $(BOOT_OBJS) $(LDFLAGS) $(LIBS) + $(CC) $(CFLAGS) -o raw_racketcs main.o $(BOOT_OBJS) $(LDFLAGS) $(LIBS) $(LINK_DYNAMIC) @POST_LINKER@ raw_racketcs raw_gracketcs: grmain.o boot.o $(BOOT_OBJ_DEPS) - $(CC) $(CFLAGS) -o raw_gracketcs grmain.o $(BOOT_OBJS) $(LDFLAGS) $(LIBS) + $(CC) $(CFLAGS) -o raw_gracketcs grmain.o $(BOOT_OBJS) $(LDFLAGS) $(LIBS) $(LINK_DYNAMIC) @POST_LINKER@ raw_gracketcs petite-v.boot: $(SCHEME_TARGET_INC)/petite.boot diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure index f7e8e30c3e..6178369e41 100755 --- a/racket/src/cs/c/configure +++ b/racket/src/cs/c/configure @@ -678,6 +678,7 @@ WINDRES STATIC_AR ARFLAGS AR +LINK_DYNAMIC LD upsrcdir EGREP @@ -4344,6 +4345,7 @@ case "$host_os" in CFLAGS="${CFLAGS} -I/usr/local/include" LDFLAGS="${LDFLAGS} -L/usr/local/lib" LIBS="${LIBS} -lm -lpthread" + LINK_DYNAMIC="-rdynamic" add_iconv_lib="-liconv" CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" ELF_COMP="--expect-elf" @@ -4353,18 +4355,22 @@ case "$host_os" in CFLAGS="${CFLAGS} -I/usr/local/include" LDFLAGS="${LDFLAGS} -L/usr/local/lib" LIBS="${LIBS} -lm -lpthread" + LINK_DYNAMIC="-Wl,--export-dynamic" add_iconv_lib="-liconv" LDFLAGS="${LDFLAGS} -Wl,-zwxneeded" CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" ELF_COMP="--expect-elf" ;; bitrig*) + LINK_DYNAMIC="-Wl,--export-dynamic" ;; dragonfly*) + LINK_DYNAMIC="-Wl,--export-dynamic" ;; netbsd*) MACH_OS=nb LIBS="${LIBS} -lm -lpthread" + LINK_DYNAMIC="-rdynamic" add_iconv_lib="/usr/lib/i18n/libiconv_std.a" CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" ELF_COMP="--expect-elf" @@ -4382,6 +4388,7 @@ case "$host_os" in ;; esac CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" + LINK_DYNAMIC="-rdynamic" ELF_COMP="--expect-elf" ;; osf1*) @@ -5786,6 +5793,7 @@ SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${cs_auto_flags + makefiles="Makefile" diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac index b40fb2d717..c5299fc1ed 100644 --- a/racket/src/cs/c/configure.ac +++ b/racket/src/cs/c/configure.ac @@ -227,6 +227,7 @@ case "$host_os" in CFLAGS="${CFLAGS} -I/usr/local/include" LDFLAGS="${LDFLAGS} -L/usr/local/lib" LIBS="${LIBS} -lm -lpthread" + LINK_DYNAMIC="-rdynamic" add_iconv_lib="-liconv" CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" ELF_COMP="--expect-elf" @@ -236,18 +237,22 @@ case "$host_os" in CFLAGS="${CFLAGS} -I/usr/local/include" LDFLAGS="${LDFLAGS} -L/usr/local/lib" LIBS="${LIBS} -lm -lpthread" + LINK_DYNAMIC="-Wl,--export-dynamic" add_iconv_lib="-liconv" LDFLAGS="${LDFLAGS} -Wl,-zwxneeded" CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" ELF_COMP="--expect-elf" ;; bitrig*) + LINK_DYNAMIC="-Wl,--export-dynamic" ;; dragonfly*) + LINK_DYNAMIC="-Wl,--export-dynamic" ;; netbsd*) MACH_OS=nb LIBS="${LIBS} -lm -lpthread" + LINK_DYNAMIC="-rdynamic" add_iconv_lib="/usr/lib/i18n/libiconv_std.a" CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" ELF_COMP="--expect-elf" @@ -265,6 +270,7 @@ case "$host_os" in ;; esac CPPFLAGS="${CPPFLAGS} -DELF_FIND_BOOT_SECTION" + LINK_DYNAMIC="-rdynamic" ELF_COMP="--expect-elf" ;; osf1*) @@ -773,6 +779,7 @@ AC_SUBST(CPPFLAGS) AC_SUBST(LD) AC_SUBST(LDFLAGS) AC_SUBST(LIBS) +AC_SUBST(LINK_DYNAMIC) AC_SUBST(AR) AC_SUBST(ARFLAGS) AC_SUBST(RANLIB)