Hello toolchainers, I'm attempting to clean up hardcoded ar(1) flags in the tree to use the global ARFLAGS in share/mk/sys.mk instead. I want to be able to add "-D" to ARFLAGS and have it used everywhere.
The patch changes some hardcoded flags from e.g. "cru" to the default "rl" or "rv" from sys.mk. Looking at the manpage for ar(1), I'm pretty sure this is safe, and my runtime tests haven't turned out any problems. Loosing the "u" flags means loosing a bit in performance in theory, but I have tested this to be negligible in a buildworld / kernel run. In a later iteration, maybe the default flags can be added a "u". Are there any problems with this patch? Thanks, Erik Index: head/gnu/usr.bin/cc/cc_tools/Makefile =================================================================== --- head/gnu/usr.bin/cc/cc_tools/Makefile (revision 242822) +++ head/gnu/usr.bin/cc/cc_tools/Makefile (working copy) @@ -512,7 +512,7 @@ ${LIBIBERTY}: ${LIBIBERTY_OBJS} @rm -f ${.TARGET} - @${AR} cq ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` ${RANLIB} ${.TARGET} CLEANFILES+= ${LIBIBERTY} ${LIBIBERTY_OBJS} Index: head/gnu/lib/libgcc/Makefile =================================================================== --- head/gnu/lib/libgcc/Makefile (revision 242822) +++ head/gnu/lib/libgcc/Makefile (working copy) @@ -341,7 +341,7 @@ libgcc_eh.a: ${EH_OBJS_T} @${ECHO} building static gcc_eh library @rm -f ${.TARGET} - @${AR} cq ${.TARGET} `lorder ${EH_OBJS_T} | tsort -q` + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${EH_OBJS_T} | tsort -q` ${RANLIB} ${.TARGET} all: libgcc_eh.a @@ -350,7 +350,7 @@ libgcc_eh_p.a: ${EH_OBJS_P} @${ECHO} building profiled gcc_eh library @rm -f ${.TARGET} - @${AR} cq ${.TARGET} `lorder ${EH_OBJS_P} | tsort -q` + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${EH_OBJS_P} | tsort -q` ${RANLIB} ${.TARGET} all: libgcc_eh_p.a .endif Index: head/share/mk/bsd.lib.mk =================================================================== --- head/share/mk/bsd.lib.mk (revision 242822) +++ head/share/mk/bsd.lib.mk (working copy) @@ -135,9 +135,9 @@ @${ECHO} building static ${LIB} library @rm -f ${.TARGET} .if !defined(NM) - @${AR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} .else - @${AR} cq ${.TARGET} `NM='${NM}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} .endif ${RANLIB} ${.TARGET} .endif @@ -152,9 +152,9 @@ @${ECHO} building profiled ${LIB} library @rm -f ${.TARGET} .if !defined(NM) - @${AR} cq ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD} .else - @${AR} cq ${.TARGET} `NM='${NM}' lorder ${POBJS} | tsort -q` ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' lorder ${POBJS} | tsort -q` ${ARADD} .endif ${RANLIB} ${.TARGET} .endif @@ -202,7 +202,7 @@ lib${LIB}_pic.a: ${SOBJS} @${ECHO} building special pic ${LIB} library @rm -f ${.TARGET} - @${AR} cq ${.TARGET} ${SOBJS} ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD} ${RANLIB} ${.TARGET} .endif Index: head/crypto/openssl/Makefile.org =================================================================== --- head/crypto/openssl/Makefile.org (revision 242822) +++ head/crypto/openssl/Makefile.org (working copy) @@ -63,7 +63,6 @@ PEX_LIBS= EX_LIBS= EXE_EXT= -ARFLAGS= AR=ar $(ARFLAGS) r RANLIB= ranlib NM= nm Index: head/crypto/openssl/crypto/Makefile =================================================================== --- head/crypto/openssl/crypto/Makefile (revision 242822) +++ head/crypto/openssl/crypto/Makefile (working copy) @@ -13,7 +13,7 @@ MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG) MAKEFILE= Makefile RM= rm -f -AR= ar r +AR= ar ${ARFLAGS} RECURSIVE_MAKE= [ -n "$(SDIRS)" ] && for i in $(SDIRS) ; do \ (cd $$i && echo "making $$target in $(DIR)/$$i..." && \ Index: head/crypto/heimdal/appl/ftp/common/Makefile.in =================================================================== --- head/crypto/heimdal/appl/ftp/common/Makefile.in (revision 242822) +++ head/crypto/heimdal/appl/ftp/common/Makefile.in (working copy) @@ -96,7 +96,6 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru libcommon_a_AR = $(AR) $(ARFLAGS) libcommon_a_LIBADD = am_libcommon_a_OBJECTS = sockbuf.$(OBJEXT) buffer.$(OBJEXT) Index: head/crypto/heimdal/appl/telnet/libtelnet/Makefile.in =================================================================== --- head/crypto/heimdal/appl/telnet/libtelnet/Makefile.in (revision 242822) +++ head/crypto/heimdal/appl/telnet/libtelnet/Makefile.in (working copy) @@ -96,7 +96,6 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru libtelnet_a_AR = $(AR) $(ARFLAGS) libtelnet_a_LIBADD = am_libtelnet_a_OBJECTS = auth.$(OBJEXT) enc_des.$(OBJEXT) \ Index: head/contrib/gperf/lib/Makefile.in =================================================================== --- head/contrib/gperf/lib/Makefile.in (revision 242822) +++ head/contrib/gperf/lib/Makefile.in (working copy) @@ -43,8 +43,8 @@ # Both C and C++ compiler OBJEXT = @OBJEXT@ # Other -AR = ar -AR_FLAGS = rc +AR = @AR@ +ARFLAGS = @ARFLAGS@ RANLIB = @RANLIB@ MV = mv LN = ln @@ -71,7 +71,7 @@ $(TARGETLIB): $(OBJECTS) $(RM) $@ - $(AR) $(AR_FLAGS) $@ $(OBJECTS) + $(AR) $(ARFLAGS) $@ $(OBJECTS) $(RANLIB) $@ # Don't use implicit rules, since AIX "make" and OSF/1 "make" don't always Index: head/contrib/tcp_wrappers/Makefile =================================================================== --- head/contrib/tcp_wrappers/Makefile (revision 242822) +++ head/contrib/tcp_wrappers/Makefile (working copy) @@ -139,7 +139,7 @@ freebsd: @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ - RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP=-DNETGROUP TLI= \ + RANLIB=ranlib ARFLAGS=$(ARFLAGS) AUX_OBJ= NETGROUP=-DNETGROUP TLI= \ EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DINET6 -DUSE_GETIPNODEBY" \ VSYSLOG= all @@ -401,7 +401,7 @@ RANLIB = ranlib # have ranlib (BSD-ish UNIX) #RANLIB = echo # no ranlib (SYSV-ish UNIX) -ARFLAGS = rv # most systems +ARFLAGS ?= rv # most systems #ARFLAGS= rvs # IRIX 4.0.x AR = ar Index: head/contrib/bind9/configure.in =================================================================== --- head/contrib/bind9/configure.in (revision 242822) +++ head/contrib/bind9/configure.in (working copy) @@ -89,7 +89,6 @@ AC_CONFIG_FILES([make/rules make/includes]) AC_PATH_PROG(AR, ar) -ARFLAGS="cruv" AC_SUBST(AR) AC_SUBST(ARFLAGS) Index: head/contrib/tcpdump/Makefile.in =================================================================== --- head/contrib/tcpdump/Makefile.in (revision 242822) +++ head/contrib/tcpdump/Makefile.in (working copy) @@ -366,7 +366,7 @@ $(LIBNETDISSECT): $(LIBNETDISSECT_OBJ) @rm -f $@ - $(AR) cr $@ $(LIBNETDISSECT_OBJ) + $(AR) $(ARFLAGS) $@ $(LIBNETDISSECT_OBJ) $(RANLIB) $@ datalinks.o: $(srcdir)/missing/datalinks.c Index: head/contrib/gcc/Makefile.in =================================================================== --- head/contrib/gcc/Makefile.in (revision 242822) +++ head/contrib/gcc/Makefile.in (working copy) @@ -238,7 +238,7 @@ FLEX = @FLEX@ FLEXFLAGS = AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ NM = @NM@ RANLIB = @RANLIB@ RANLIB_FLAGS = @ranlib_flags@ @@ -1303,7 +1303,7 @@ # This archive is strictly for the host. libbackend.a: $(OBJS@onestep@) -rm -rf libbackend.a - $(AR) $(AR_FLAGS) libbackend.a $(OBJS@onestep@) + $(AR) $(ARFLAGS) libbackend.a $(OBJS@onestep@) -$(RANLIB) $(RANLIB_FLAGS) libbackend.a # We call this executable `xgcc' rather than `gcc' Index: head/contrib/ntp/libparse/Makefile.in =================================================================== --- head/contrib/ntp/libparse/Makefile.in (revision 242822) +++ head/contrib/ntp/libparse/Makefile.in (working copy) @@ -52,7 +52,6 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru libparse_a_AR = $(AR) $(ARFLAGS) libparse_a_LIBADD = am_libparse_a_OBJECTS = parse$U.$(OBJEXT) parse_conf$U.$(OBJEXT) \ Index: head/contrib/ntp/libntp/Makefile.in =================================================================== --- head/contrib/ntp/libntp/Makefile.in (revision 242822) +++ head/contrib/ntp/libntp/Makefile.in (working copy) @@ -52,7 +52,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru +ARFLAGS = @ARFLAGS@ libntp_a_AR = $(AR) $(ARFLAGS) libntp_a_LIBADD = am__objects_1 = a_md5encrypt$U.$(OBJEXT) adjtime$U.$(OBJEXT) \ Index: head/contrib/ntp/arlib/Makefile.in =================================================================== --- head/contrib/ntp/arlib/Makefile.in (revision 242822) +++ head/contrib/ntp/arlib/Makefile.in (working copy) @@ -50,8 +50,8 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ libares_a_AR = $(AR) $(ARFLAGS) libares_a_LIBADD = am_libares_a_OBJECTS = arlib.$(OBJEXT) Index: head/contrib/ntp/ntpd/Makefile.in =================================================================== --- head/contrib/ntp/ntpd/Makefile.in (revision 242822) +++ head/contrib/ntp/ntpd/Makefile.in (working copy) @@ -58,7 +58,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru +ARFLAGS = @ARFLAGS@ libntpd_a_AR = $(AR) $(ARFLAGS) libntpd_a_LIBADD = am_libntpd_a_OBJECTS = ntp_control$U.$(OBJEXT) ntp_crypto$U.$(OBJEXT) \ Index: head/contrib/binutils/Makefile.in =================================================================== --- head/contrib/binutils/Makefile.in (revision 242822) +++ head/contrib/binutils/Makefile.in (working copy) @@ -284,7 +284,7 @@ AS = @AS@ AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ CC = @CC@ CXX = @CXX@ DLLTOOL = @DLLTOOL@ @@ -474,7 +474,7 @@ "SHELL=$(SHELL)" \ "YACC=$(YACC)" \ "`echo 'ADAFLAGS=$(ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ - "AR_FLAGS=$(AR_FLAGS)" \ + "AR_FLAGS=$(ARFLAGS)" \ "`echo 'BOOT_ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ "BOOT_CFLAGS=$(BOOT_CFLAGS)" \ "BOOT_LDFLAGS=$(BOOT_LDFLAGS)" \ Index: head/contrib/binutils/libiberty/Makefile.in =================================================================== --- head/contrib/binutils/libiberty/Makefile.in (revision 242822) +++ head/contrib/binutils/libiberty/Makefile.in (working copy) @@ -56,7 +56,7 @@ OUTPUT_OPTION = @OUTPUT_OPTION@ AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ CC = @CC@ CFLAGS = @CFLAGS@ @@ -81,7 +81,7 @@ # Flags to pass to a recursive make. FLAGS_TO_PASS = \ "AR=$(AR)" \ - "AR_FLAGS=$(AR_FLAGS)" \ + "AR_FLAGS=$(ARFLAGS)" \ "CC=$(CC)" \ "CFLAGS=$(CFLAGS)" \ "DESTDIR=$(DESTDIR)" \ @@ -224,12 +224,12 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) -rm -f $(TARGETLIB) pic/$(TARGETLIB) - $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(AR) $(ARFLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(RANLIB) $(TARGETLIB) if [ x"$(PICFLAG)" != x ]; then \ cd pic; \ - $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(AR) $(ARFLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ $(RANLIB) $(TARGETLIB); \ cd ..; \ @@ -237,7 +237,7 @@ $(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES) -rm -f $(TESTLIB) - $(AR) $(AR_FLAGS) $(TESTLIB) \ + $(AR) $(ARFLAGS) $(TESTLIB) \ $(REQUIRED_OFILES) $(CONFIGURED_OFILES) $(RANLIB) $(TESTLIB) Index: head/contrib/binutils/Makefile.tpl =================================================================== --- head/contrib/binutils/Makefile.tpl (revision 242822) +++ head/contrib/binutils/Makefile.tpl (working copy) @@ -287,7 +287,7 @@ AS = @AS@ AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ CC = @CC@ CXX = @CXX@ DLLTOOL = @DLLTOOL@ Index: head/contrib/opie/libopie/Makefile.in =================================================================== --- head/contrib/opie/libopie/Makefile.in (revision 242822) +++ head/contrib/opie/libopie/Makefile.in (working copy) @@ -23,7 +23,7 @@ all: $(TARGET) $(TARGET): $(OBJS) - ar cr $(TARGET) $(OBJS) + @AR@ @ARFLAGS@ $(TARGET) $(OBJS) @RANLIB@ $(TARGET) clean: Index: head/contrib/opie/libmissing/Makefile.in =================================================================== --- head/contrib/opie/libmissing/Makefile.in (revision 242822) +++ head/contrib/opie/libmissing/Makefile.in (working copy) @@ -22,7 +22,7 @@ all: $(TARGET) $(TARGET): $(OBJS) - ar cr $(TARGET) $(OBJS) + @AR@ @ARFLAGS@ $(TARGET) $(OBJS) @RANLIB@ $(TARGET) clean: Index: head/contrib/gcclibs/libiberty/Makefile.in =================================================================== --- head/contrib/gcclibs/libiberty/Makefile.in (revision 242822) +++ head/contrib/gcclibs/libiberty/Makefile.in (working copy) @@ -56,7 +56,7 @@ OUTPUT_OPTION = @OUTPUT_OPTION@ AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ CC = @CC@ CFLAGS = @CFLAGS@ @@ -81,7 +81,7 @@ # Flags to pass to a recursive make. FLAGS_TO_PASS = \ "AR=$(AR)" \ - "AR_FLAGS=$(AR_FLAGS)" \ + "AR_FLAGS=$(ARFLAGS)" \ "CC=$(CC)" \ "CFLAGS=$(CFLAGS)" \ "DESTDIR=$(DESTDIR)" \ @@ -224,12 +224,12 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) -rm -f $(TARGETLIB) pic/$(TARGETLIB) - $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(AR) $(ARFLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(RANLIB) $(TARGETLIB) if [ x"$(PICFLAG)" != x ]; then \ cd pic; \ - $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(AR) $(ARFLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ $(RANLIB) $(TARGETLIB); \ cd ..; \ @@ -237,7 +237,7 @@ $(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES) -rm -f $(TESTLIB) - $(AR) $(AR_FLAGS) $(TESTLIB) \ + $(AR) $(ARFLAGS) $(TESTLIB) \ $(REQUIRED_OFILES) $(CONFIGURED_OFILES) $(RANLIB) $(TESTLIB) Index: head/contrib/gcclibs/libcpp/Makefile.in =================================================================== --- head/contrib/gcclibs/libcpp/Makefile.in (revision 242822) +++ head/contrib/gcclibs/libcpp/Makefile.in (working copy) @@ -26,8 +26,8 @@ top_builddir = . VPATH = @srcdir@ INSTALL = @INSTALL@ -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ Index: head/contrib/gcclibs/libdecnumber/Makefile.in =================================================================== --- head/contrib/gcclibs/libdecnumber/Makefile.in (revision 242822) +++ head/contrib/gcclibs/libdecnumber/Makefile.in (working copy) @@ -26,8 +26,8 @@ top_builddir = . VPATH = @srcdir@ INSTALL = @INSTALL@ -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ Index: head/contrib/dtc/Makefile =================================================================== --- head/contrib/dtc/Makefile (revision 242822) +++ head/contrib/dtc/Makefile (working copy) @@ -48,7 +48,6 @@ VECHO = : else VECHO = echo " " -ARFLAGS = rc .SILENT: endif Index: head/contrib/cvs/diff/Makefile.in =================================================================== --- head/contrib/cvs/diff/Makefile.in (revision 242822) +++ head/contrib/cvs/diff/Makefile.in (working copy) @@ -41,8 +41,8 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ libdiff_a_AR = $(AR) $(ARFLAGS) libdiff_a_LIBADD = am_libdiff_a_OBJECTS = diff.$(OBJEXT) diff3.$(OBJEXT) \ Index: head/contrib/cvs/lib/Makefile.in =================================================================== --- head/contrib/cvs/lib/Makefile.in (revision 242822) +++ head/contrib/cvs/lib/Makefile.in (working copy) @@ -63,8 +63,8 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = fnmatch.h LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ libcvs_a_AR = $(AR) $(ARFLAGS) libcvs_a_DEPENDENCIES = @LIBOBJS@ am_libcvs_a_OBJECTS = argmatch.$(OBJEXT) getdate.$(OBJEXT) \ Index: head/contrib/gdtoa/makefile =================================================================== --- head/contrib/gdtoa/makefile (revision 242822) +++ head/contrib/gdtoa/makefile (working copy) @@ -52,12 +52,12 @@ strtopx.c strtopxL.c strtorQ.c strtord.c strtordd.c strtorf.c\ strtorx.c strtorxL.c sum.c ulp.c $(CC) -c $(CFLAGS) $? - x=`echo $? | sed 's/\.c/.o/g'` && ar ruv gdtoa.a $$x && rm $$x + x=`echo $? | sed 's/\.c/.o/g'` && $(AR) $(ARFLAGS) gdtoa.a $$x && rm $$x ranlib gdtoa.a || true Printf: all printf.c $(CC) -c $(CFLAGS) printf.c - ar ruv gdtoa.a printf.o + $(AR) $(ARFLAGS) gdtoa.a printf.o rm printf.o touch Printf _______________________________________________ freebsd-toolchain@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"