mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-11-16 12:34:43 +00:00
binutils: properly split ar and ranlib
By not linking the exact same object file twice, in particular ranlib can benefit quite a bit from the compiler eliminating dead code.
This commit is contained in:
@@ -287,13 +287,13 @@ endif
|
|||||||
|
|
||||||
cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
|
cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
|
||||||
|
|
||||||
ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \
|
ar_SOURCES = arparse.y arlex.l not-ranlib.c arsup.c rename.c binemul.c \
|
||||||
emul_$(EMULATION).c $(BULIBS)
|
emul_$(EMULATION).c $(BULIBS)
|
||||||
EXTRA_ar_SOURCES = $(CFILES)
|
EXTRA_ar_SOURCES = $(CFILES)
|
||||||
ar_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
|
ar_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
|
||||||
|
|
||||||
ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \
|
ranlib_SOURCES = arparse.y arlex.l is-ranlib.c arsup.c rename.c binemul.c \
|
||||||
binemul.c emul_$(EMULATION).c $(BULIBS)
|
emul_$(EMULATION).c $(BULIBS)
|
||||||
ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
|
ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
|
||||||
|
|
||||||
addr2line_SOURCES = addr2line.c $(BULIBS)
|
addr2line_SOURCES = addr2line.c $(BULIBS)
|
||||||
|
|||||||
@@ -208,9 +208,9 @@ AM_V_lt = $(am__v_lt_@AM_V@)
|
|||||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||||
am__v_lt_0 = --silent
|
am__v_lt_0 = --silent
|
||||||
am__v_lt_1 =
|
am__v_lt_1 =
|
||||||
am_ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) ar.$(OBJEXT) \
|
am_ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) not-ranlib.$(OBJEXT) \
|
||||||
not-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
|
arsup.$(OBJEXT) rename.$(OBJEXT) binemul.$(OBJEXT) \
|
||||||
binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
|
emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
|
||||||
ar_OBJECTS = $(am_ar_OBJECTS)
|
ar_OBJECTS = $(am_ar_OBJECTS)
|
||||||
bfdtest1_SOURCES = bfdtest1.c
|
bfdtest1_SOURCES = bfdtest1.c
|
||||||
bfdtest1_OBJECTS = bfdtest1.$(OBJEXT)
|
bfdtest1_OBJECTS = bfdtest1.$(OBJEXT)
|
||||||
@@ -249,8 +249,8 @@ am_objdump_OBJECTS = objdump.$(OBJEXT) dwarf.$(OBJEXT) prdbg.$(OBJEXT) \
|
|||||||
$(am__objects_2)
|
$(am__objects_2)
|
||||||
objdump_OBJECTS = $(am_objdump_OBJECTS)
|
objdump_OBJECTS = $(am_objdump_OBJECTS)
|
||||||
@ENABLE_LIBCTF_TRUE@am__DEPENDENCIES_2 = ../libctf/libctf.la
|
@ENABLE_LIBCTF_TRUE@am__DEPENDENCIES_2 = ../libctf/libctf.la
|
||||||
am_ranlib_OBJECTS = ar.$(OBJEXT) is-ranlib.$(OBJEXT) arparse.$(OBJEXT) \
|
am_ranlib_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) \
|
||||||
arlex.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
|
is-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
|
||||||
binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
|
binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
|
||||||
ranlib_OBJECTS = $(am_ranlib_OBJECTS)
|
ranlib_OBJECTS = $(am_ranlib_OBJECTS)
|
||||||
am_readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \
|
am_readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \
|
||||||
@@ -805,13 +805,13 @@ objdump_SOURCES = objdump.c dwarf.c prdbg.c demanguse.c $(DEBUG_SRCS) $(BULIBS)
|
|||||||
EXTRA_objdump_SOURCES = od-elf32_avr.c od-macho.c od-xcoff.c od-pe.c
|
EXTRA_objdump_SOURCES = od-elf32_avr.c od-macho.c od-xcoff.c od-pe.c
|
||||||
objdump_LDADD = $(OBJDUMP_PRIVATE_OFILES) $(OPCODES) $(LIBCTF) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) $(DEBUGINFOD_LIBS) $(LIBSFRAME)
|
objdump_LDADD = $(OBJDUMP_PRIVATE_OFILES) $(OPCODES) $(LIBCTF) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) $(DEBUGINFOD_LIBS) $(LIBSFRAME)
|
||||||
cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
|
cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
|
||||||
ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \
|
ar_SOURCES = arparse.y arlex.l not-ranlib.c arsup.c rename.c binemul.c \
|
||||||
emul_$(EMULATION).c $(BULIBS)
|
emul_$(EMULATION).c $(BULIBS)
|
||||||
|
|
||||||
EXTRA_ar_SOURCES = $(CFILES)
|
EXTRA_ar_SOURCES = $(CFILES)
|
||||||
ar_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
|
ar_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
|
||||||
ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \
|
ranlib_SOURCES = arparse.y arlex.l is-ranlib.c arsup.c rename.c binemul.c \
|
||||||
binemul.c emul_$(EMULATION).c $(BULIBS)
|
emul_$(EMULATION).c $(BULIBS)
|
||||||
|
|
||||||
ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
|
ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
|
||||||
addr2line_SOURCES = addr2line.c $(BULIBS)
|
addr2line_SOURCES = addr2line.c $(BULIBS)
|
||||||
|
|||||||
@@ -67,7 +67,9 @@ static int mri_mode;
|
|||||||
/* This flag distinguishes between ar and ranlib:
|
/* This flag distinguishes between ar and ranlib:
|
||||||
1 means this is 'ranlib'; 0 means this is 'ar'.
|
1 means this is 'ranlib'; 0 means this is 'ar'.
|
||||||
-1 means if we should use argv[0] to decide. */
|
-1 means if we should use argv[0] to decide. */
|
||||||
|
#ifndef is_ranlib
|
||||||
extern int is_ranlib;
|
extern int is_ranlib;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Nonzero means don't warn about creating the archive file if necessary. */
|
/* Nonzero means don't warn about creating the archive file if necessary. */
|
||||||
int silent_create = 0;
|
int silent_create = 0;
|
||||||
@@ -735,6 +737,7 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
expandargv (&argc, &argv);
|
expandargv (&argc, &argv);
|
||||||
|
|
||||||
|
#ifndef is_ranlib
|
||||||
if (is_ranlib < 0)
|
if (is_ranlib < 0)
|
||||||
{
|
{
|
||||||
const char *temp = lbasename (program_name);
|
const char *temp = lbasename (program_name);
|
||||||
@@ -745,6 +748,7 @@ main (int argc, char **argv)
|
|||||||
else
|
else
|
||||||
is_ranlib = 0;
|
is_ranlib = 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (bfd_init () != BFD_INIT_MAGIC)
|
if (bfd_init () != BFD_INIT_MAGIC)
|
||||||
fatal (_("fatal error: libbfd ABI mismatch"));
|
fatal (_("fatal error: libbfd ABI mismatch"));
|
||||||
|
|||||||
@@ -17,6 +17,5 @@
|
|||||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
||||||
02110-1301, USA. */
|
02110-1301, USA. */
|
||||||
|
|
||||||
/* Linked with ar.o to flag that this program is 'ranlib' (not 'ar'). */
|
#define is_ranlib 1
|
||||||
|
#include "ar.c"
|
||||||
int is_ranlib = 1;
|
|
||||||
|
|||||||
@@ -17,6 +17,5 @@
|
|||||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
||||||
02110-1301, USA. */
|
02110-1301, USA. */
|
||||||
|
|
||||||
/* Linked with ar.o to flag that this program is 'ar' (not 'ranlib'). */
|
#define is_ranlib 0
|
||||||
|
#include "ar.c"
|
||||||
int is_ranlib = 0;
|
|
||||||
|
|||||||
Reference in New Issue
Block a user