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`.
This commit is contained in:
Matthew Flatt 2019-06-21 16:53:58 -06:00
parent 5c51096a88
commit 90b79524aa
14 changed files with 22 additions and 36 deletions

View File

@ -4594,7 +4594,7 @@ fi
fi
fi
if test "$ARFLAGS" = '' ; then
ARFLAGS=ruv
ARFLAGS=rc
fi
# If using gcc, we want all warnings:

View File

@ -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)

View File

@ -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}"'"'

View File

@ -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}"'"'

View File

@ -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@

View File

@ -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:

View File

@ -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)

View File

@ -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)

View File

@ -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@

View File

@ -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:

View File

@ -3223,7 +3223,7 @@ fi
fi
fi
if test "$ARFLAGS" = '' ; then
ARFLAGS=ruv
ARFLAGS=rc
fi

View File

@ -47,7 +47,7 @@ if test "$AR" = '' ; then
fi
fi
if test "$ARFLAGS" = '' ; then
ARFLAGS=ruv
ARFLAGS=rc
fi
AC_CHECK_LIB(m, fmod)

View File

@ -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:

View File

@ -1,3 +0,0 @@
#!/bin/sh
$* 2>&1 | awk '/^ar: creating / || /^[ar] \-/ || / modifier ignored / { print } ! ( /ar: creating / || /^[ar] \-/ || / modifier ignored / ) { print | "cat 1>&2" }'