From 90b79524aac3fc3a57eb1594ee53a90730a75bb8 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 21 Jun 2019 16:53:58 -0600 Subject: [PATCH] revise build to avoid `ld` and `nicear` The Chez Scheme build process now create an archive instead of linking "kernel.o". Adjust the Racket CS build to use archives instead of "kernel.o". Also, modernize the Racket build's use of `ar`. Using the flags `rc` by default (instead of `ruv`) should avoid the need for `nicear`. --- racket/src/cfg-racket | 2 +- racket/src/cs/c/Makefile.in | 9 ++++++--- racket/src/cs/c/configure | 7 ++----- racket/src/cs/c/configure.ac | 7 ++----- racket/src/racket/Makefile.in | 6 ++---- racket/src/racket/configure.ac | 2 +- racket/src/racket/gc/Makefile.in | 3 +-- racket/src/racket/gc2/Makefile.in | 4 +--- racket/src/racket/sgc/Makefile.in | 3 +-- racket/src/rktio/Makefile.in | 6 ++---- racket/src/rktio/configure | 2 +- racket/src/rktio/configure.ac | 2 +- racket/src/start/configure.ac | 2 +- racket/src/utils/nicear | 3 --- 14 files changed, 22 insertions(+), 36 deletions(-) delete mode 100755 racket/src/utils/nicear diff --git a/racket/src/cfg-racket b/racket/src/cfg-racket index ad8cb8eea9..a65d534767 100755 --- a/racket/src/cfg-racket +++ b/racket/src/cfg-racket @@ -4594,7 +4594,7 @@ fi fi fi if test "$ARFLAGS" = '' ; then - ARFLAGS=ruv + ARFLAGS=rc fi # If using gcc, we want all warnings: diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in index 3450ec173b..dfb04d1d72 100644 --- a/racket/src/cs/c/Makefile.in +++ b/racket/src/cs/c/Makefile.in @@ -16,7 +16,6 @@ SCHEME_TARGET_INC = $(SCHEME_SRC)/$(TARGET_MACH)/boot/$(TARGET_MACH) CC = @CC@ BASE_CFLAGS = @CFLAGS@ @CPPFLAGS@ CFLAGS = $(BASE_CFLAGS) -I$(SCHEME_TARGET_INC) -I$(srcdir)/../../rktio -Irktio -I. -LD = @LD@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ AR = @AR@ @@ -141,7 +140,7 @@ scheme-make-copy: if [ ! -d "$(SCHEME_SRC)" ] ; then cp -r $(srcdir)/../../ChezScheme "$(SCHEME_SRC)" ; fi $(MAKE) scheme-make-finish -SCHEME_CONFIG_VARS = CC="$(CC)" CFLAGS="$(BASE_CFLAGS)" LD="$(LD)" LDFLAGS="$(LDFLAGS)" \ +SCHEME_CONFIG_VARS = CC="$(CC)" CFLAGS="$(BASE_CFLAGS)" LDFLAGS="$(LDFLAGS)" \ AR="$(AR)" ARFLAGS="$(ARFLAGS)" RANLIB="$(RANLIB)" \ WINDRES="$(WINDRES)" @@ -205,7 +204,11 @@ racketcs@NOT_OSX@@NOT_MINGW@: raw_racketcs petite-v.boot scheme-v.boot racket-v. 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 -BOOT_OBJS = boot.o $(SCHEME_TARGET_INC)/kernel.o rktio/librktio.a +SCHEME_LIBS = $(SCHEME_TARGET_INC)/libkernel.a \ + $(SCHEME_TARGET_INC)/../../lz4/lib/liblz4.a \ + $(SCHEME_TARGET_INC)/../../zlib/libz.a + +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) diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure index e244777a6e..f08aad6a58 100755 --- a/racket/src/cs/c/configure +++ b/racket/src/cs/c/configure @@ -3878,11 +3878,9 @@ fi fi fi if test "$ARFLAGS" = '' ; then - ARFLAGS=ruv + ARFLAGS=rc fi -LD="${ac_tool_prefix}ld" - WINDRES=windres ############## platform tests ################ @@ -3909,7 +3907,7 @@ case "$host_os" in openbsd*) MACH_OS=ob LIBS="${LIBS} -L/usr/local/lib -liconv -lm -lpthread -lossp-uuid" - LDFLAGS="{$LDFLAGS} -Wl,-zwxneeded" + LDFLAGS="${LDFLAGS} -Wl,-zwxneeded" # Can't strip until ELF lookup added to startup enable_strip=no ;; @@ -4986,7 +4984,6 @@ done SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CC="'"'"${CC}"'"' SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' -SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LD="'"'"${LD}"'"' SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} AR="'"'"${AR}"'"' SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} ARFLAGS="'"'"${ARFLAGS}"'"' diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac index 9720a53171..cbeddda440 100644 --- a/racket/src/cs/c/configure.ac +++ b/racket/src/cs/c/configure.ac @@ -159,11 +159,9 @@ if test "$AR" = '' ; then fi fi if test "$ARFLAGS" = '' ; then - ARFLAGS=ruv + ARFLAGS=rc fi -LD="${ac_tool_prefix}ld" - WINDRES=windres ############## platform tests ################ @@ -190,7 +188,7 @@ case "$host_os" in openbsd*) MACH_OS=ob LIBS="${LIBS} -L/usr/local/lib -liconv -lm -lpthread -lossp-uuid" - LDFLAGS="{$LDFLAGS} -Wl,-zwxneeded" + LDFLAGS="${LDFLAGS} -Wl,-zwxneeded" # Can't strip until ELF lookup added to startup enable_strip=no ;; @@ -604,7 +602,6 @@ done SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CC="'"'"${CC}"'"' SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' -SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LD="'"'"${LD}"'"' SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} AR="'"'"${AR}"'"' SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} ARFLAGS="'"'"${ARFLAGS}"'"' diff --git a/racket/src/racket/Makefile.in b/racket/src/racket/Makefile.in index 68421b58e9..fa20959676 100644 --- a/racket/src/racket/Makefile.in +++ b/racket/src/racket/Makefile.in @@ -32,7 +32,6 @@ CPP = @CPP@ CFLAGS = @CFLAGS@ @COMPFLAGS@ @PROFFLAGS@ CPPFLAGS = @PREFLAGS@ -NICEAR = $(mainsrcdir)/utils/nicear AR = @AR@ ARFLAGS = @ARFLAGS@ RANLIB = @RANLIB@ @@ -144,7 +143,7 @@ sproc-extra-lib: $(MAKE) sproc.@LTO@ gc.@LIBSFX@: - $(NICEAR) $(AR) $(ARFLAGS) @GCDIR@/gc.@LIBSFX@ @GCDIR@/*.@LTO@ + $(AR) $(ARFLAGS) @GCDIR@/gc.@LIBSFX@ @GCDIR@/*.@LTO@ # Compilation of the foreign libraries (this compiles all of them) foreign-stuff: @@ -194,8 +193,7 @@ LIBRKTIO_FOR_DLL = $(LIBRKTIO_FOR_DLL_@LIBSFX@) LIBRKTIO_FOR_LIB = $(LIBRKTIO_FOR_LIB_@LIBSFX@) libracket.@LIBSFX@: src/*.@LTO@ $(@FOREIGN_IF_USED@_LIB) $(LIBRKTIO_FOR_DLL) - $(NICEAR) $(AR) $(ARFLAGS) libracket.@LIBSFX@ src/*.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB) $(LIBRKTIO_FOR_DLL) @LIBRACKET_DEP@ - $(RANLIB) libracket.@LIBSFX@ + $(AR) $(ARFLAGS) libracket.@LIBSFX@ src/*.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB) $(LIBRKTIO_FOR_DLL) @LIBRACKET_DEP@ # Irix sproc, only sproc.@LTO@: @GCDIR@/sproc.@LTO@ diff --git a/racket/src/racket/configure.ac b/racket/src/racket/configure.ac index 2c021eb2b9..c5005519d6 100644 --- a/racket/src/racket/configure.ac +++ b/racket/src/racket/configure.ac @@ -454,7 +454,7 @@ if test "$AR" = '' ; then fi fi if test "$ARFLAGS" = '' ; then - ARFLAGS=ruv + ARFLAGS=rc fi # If using gcc, we want all warnings: diff --git a/racket/src/racket/gc/Makefile.in b/racket/src/racket/gc/Makefile.in index 50e11e9f93..0dab202ec7 100644 --- a/racket/src/racket/gc/Makefile.in +++ b/racket/src/racket/gc/Makefile.in @@ -339,7 +339,6 @@ HOSTCFLAGS=$(BASEFLAGS) # CXXFLAGS= $(ALL_CFLAGS) -NICEAR = $(mainsrcdir)/utils/nicear AR= @AR@ ARFLAGS= @ARFLAGS@ RANLIB= @RANLIB@ @@ -503,7 +502,7 @@ tests: # PLTSCHEME: make ../libmzgc.a, and use $(AR), $(RANLIB), and @LIBSFX@: base_lib ../libmzgc.@LIBSFX@: $(OBJS) dyn_load.@LTO@ $(UTILS) - $(NICEAR) $(AR) $(ARFLAGS) ../libmzgc.@LIBSFX@ $(OBJS) dyn_load.@LTO@ + $(AR) $(ARFLAGS) ../libmzgc.@LIBSFX@ $(OBJS) dyn_load.@LTO@ $(RANLIB) ../libmzgc.@LIBSFX@ cords: $(CORD_OBJS) cord/cordtest $(UTILS) diff --git a/racket/src/racket/gc2/Makefile.in b/racket/src/racket/gc2/Makefile.in index e0a129021f..0ba90f57a6 100644 --- a/racket/src/racket/gc2/Makefile.in +++ b/racket/src/racket/gc2/Makefile.in @@ -18,7 +18,6 @@ mainsrcdir = @srcdir@/../.. CC = @CC@ CPP = @CPP@ CXX = @CXX@ -NICEAR = $(mainsrcdir)/utils/nicear AR = @AR@ ARFLAGS = @ARFLAGS@ RANLIB = @RANLIB@ @@ -584,8 +583,7 @@ EXTRA_OBJS_T = $(EXTRA_GMP) ../src/unwind.@LTO@ $(@FOREIGN_IF_USED@_LIB) $(LIBRK EXTRA_OBJS_L = $(EXTRA_GMP) ../src/unwind.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB) $(LIBRKTIO_FOR_DLL) ../libracket3m.@LIBSFX@: $(OBJS) $(EXTRA_OBJS_T) gc2.@LTO@ - $(NICEAR) $(AR) $(ARFLAGS) ../libracket3m.@LIBSFX@ $(OBJS) $(EXTRA_OBJS_L) gc2.@LTO@ - $(RANLIB) ../libracket3m.@LIBSFX@ + $(AR) $(ARFLAGS) ../libracket3m.@LIBSFX@ $(OBJS) $(EXTRA_OBJS_L) gc2.@LTO@ ../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) diff --git a/racket/src/racket/sgc/Makefile.in b/racket/src/racket/sgc/Makefile.in index 8b1245adbc..3f270386fb 100644 --- a/racket/src/racket/sgc/Makefile.in +++ b/racket/src/racket/sgc/Makefile.in @@ -14,7 +14,6 @@ mainsrcdir = @srcdir@/../.. CC = @CC@ CXX = @CXX@ RANLIB = @RANLIB@ -NICEAR = $(srcdir)/../../utils/nicear AR = @AR@ ARFLAGS = @ARFLAGS@ @@ -27,7 +26,7 @@ SRCS = $(srcdir)/sgc.c ../libmzgc.@LIBSFX@: $(OBJS) $(MAKE) gcobjects - $(NICEAR) $(AR) $(ARFLAGS) ../libmzgc.@LIBSFX@ $(OBJS) + $(AR) $(ARFLAGS) ../libmzgc.@LIBSFX@ $(OBJS) $(RANLIB) ../libmzgc.@LIBSFX@ test: $(OBJS) test.@LTO@ diff --git a/racket/src/rktio/Makefile.in b/racket/src/rktio/Makefile.in index fbc3afffdd..3ef94ced65 100644 --- a/racket/src/rktio/Makefile.in +++ b/racket/src/rktio/Makefile.in @@ -7,7 +7,6 @@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ RKTLINKER = @RKTLINKER@ -NICEAR = $(srcdir)/../utils/nicear STATIC_AR = @STATIC_AR@ ARFLAGS = @ARFLAGS@ RANLIB = @RANLIB@ @@ -57,8 +56,7 @@ default_rktio: $(MAKE) librktio.@LTA@ @HIDE_NOT_STANDALONE@librktio.@LTA@: $(OBJS) - $(NICEAR) $(STATIC_AR) $(ARFLAGS) @HIDE_NOT_STANDALONE@librktio.@LTA@ $(OBJS) - $(RANLIB) @HIDE_NOT_STANDALONE@librktio.@LTA@ + $(STATIC_AR) $(ARFLAGS) @HIDE_NOT_STANDALONE@librktio.@LTA@ $(OBJS) demo: rktio_demo ./rktio_demo $(ARGS) @@ -175,7 +173,7 @@ $(srcdir)/rktio.def: $(srcdir)/rktio.h $(srcdir)/parse.rkt # Builds a shared object; requires `configure --enable-standalone` @HIDE_STANDALONE@librktio.@LIBSFX@: $(OBJS) - $(NICEAR) $(AR) @HIDE_STANDALONE@librktio.@LIBSFX@ $(OBJS) $(LDFLAGS) $(LIBS) + $(AR) @HIDE_STANDALONE@librktio.@LIBSFX@ $(OBJS) $(LDFLAGS) $(LIBS) # Builds a shared object and installs it to `configure --prefix=...` target install-shared-object: diff --git a/racket/src/rktio/configure b/racket/src/rktio/configure index 1517e54644..3507d3a360 100755 --- a/racket/src/rktio/configure +++ b/racket/src/rktio/configure @@ -3223,7 +3223,7 @@ fi fi fi if test "$ARFLAGS" = '' ; then - ARFLAGS=ruv + ARFLAGS=rc fi diff --git a/racket/src/rktio/configure.ac b/racket/src/rktio/configure.ac index 6b5a304b01..f9c530cc3d 100644 --- a/racket/src/rktio/configure.ac +++ b/racket/src/rktio/configure.ac @@ -47,7 +47,7 @@ if test "$AR" = '' ; then fi fi if test "$ARFLAGS" = '' ; then - ARFLAGS=ruv + ARFLAGS=rc fi AC_CHECK_LIB(m, fmod) diff --git a/racket/src/start/configure.ac b/racket/src/start/configure.ac index 215181ccf2..b205790dcc 100644 --- a/racket/src/start/configure.ac +++ b/racket/src/start/configure.ac @@ -343,7 +343,7 @@ if test "$AR" = '' ; then fi fi if test "$ARFLAGS" = '' ; then - ARFLAGS=ruv + ARFLAGS=rc fi # If using gcc, we want all warnings: diff --git a/racket/src/utils/nicear b/racket/src/utils/nicear deleted file mode 100755 index 2eafbaa625..0000000000 --- a/racket/src/utils/nicear +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -$* 2>&1 | awk '/^ar: creating / || /^[ar] \-/ || / modifier ignored / { print } ! ( /ar: creating / || /^[ar] \-/ || / modifier ignored / ) { print | "cat 1>&2" }'