Similarly to "libgas.la" before , this introduces a libld.la, moving
everything from "ld" into it, with ld built from ldmainmain.c.

As before with the libgas.la patch, this patch isn't ready yet, but
seems to be good enough for prototyping the libgccjit.so integration.
---
 ld/Makefile.am | 64 ++++++++++++++++++++++++----------------------------------
 1 file changed, 26 insertions(+), 38 deletions(-)

diff --git a/ld/Makefile.am b/ld/Makefile.am
index 55b62c5..71e4f8a 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -40,6 +40,7 @@ ELF_CLFAGS=-DELF_LIST_OPTIONS=@elf_list_options@ \
 WARN_CFLAGS = @WARN_CFLAGS@
 NO_WERROR = @NO_WERROR@
 AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+CFLAGS +=-fPIC
 
 # Conditionally enable the plugin interface.
 if ENABLE_PLUGINS
@@ -132,11 +133,14 @@ CXX_FOR_TARGET = ` \
 
 transform = s/^ld-new$$/$(installed_linker)/;@program_transform_name@
 bin_PROGRAMS = ld-new
+lib_LTLIBRARIES = libld.la
 info_TEXINFOS = ld.texinfo
 ld_TEXINFOS = configdoc.texi
 noinst_TEXINFOS = ldint.texinfo
 man_MANS = ld.1
 
+include_HEADERS = libld.h
+
 AM_MAKEINFOFLAGS = -I $(srcdir) -I $(BFDDIR)/doc -I ../bfd/doc \
                   -I $(top_srcdir)/../libiberty
 TEXI2DVI = texi2dvi -I $(srcdir) -I $(BFDDIR)/doc -I ../bfd/doc \
@@ -583,42 +587,23 @@ po/POTFILES.in: @MAINT@ Makefile
        for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
          && mv tmp $(srcdir)/po/POTFILES.in
 
-ldmain.@OBJEXT@: ldmain.c config.status
-if am__fastdepCC
-       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ \
+# FIXME:
+#   ldmain.lo wants:
+#     -DDEFAULT_EMULATION='"$(EMUL)"' \
+#     -DBINDIR='"$(bindir)"' -DTOOLBINDIR='"$(tooldir)/bin"' \
+#     -DTARGET='"@target@"' @TARGET_SYSTEM_ROOT_DEFINE@
+#
+#   ldfile.lo wants:
+#     -DSCRIPTDIR='"$(scriptdir)"' -DBINDIR='"$(bindir)"' 
-DTOOLBINDIR='"$(tooldir)/bin"'
+#
+# Here we combine them all:
+AM_CFLAGS += \
          -DDEFAULT_EMULATION='"$(EMUL)"' \
          -DBINDIR='"$(bindir)"' -DTOOLBINDIR='"$(tooldir)/bin"' \
          -DTARGET='"@target@"' @TARGET_SYSTEM_ROOT_DEFINE@ \
-         $(srcdir)/ldmain.c
-       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-else
-if AMDEP
-       source='ldmain.c' object='$@' libtool=no @AMDEPBACKSLASH@
-       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-endif
-       $(COMPILE) -c -DDEFAULT_EMULATION='"$(EMUL)"' \
-         -DBINDIR='"$(bindir)"' -DTOOLBINDIR='"$(tooldir)/bin"' \
-         -DTARGET='"@target@"' @TARGET_SYSTEM_ROOT_DEFINE@ \
-         $(srcdir)/ldmain.c
-endif
+         -DSCRIPTDIR='"$(scriptdir)"'
 
-ldfile.@OBJEXT@: ldfile.c config.status
-if am__fastdepCC
-       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ \
-       -DSCRIPTDIR='"$(scriptdir)"' -DBINDIR='"$(bindir)"' 
-DTOOLBINDIR='"$(tooldir)/bin"' \
-        $(srcdir)/ldfile.c
-       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-else
-if AMDEP
-       source='ldfile.c' object='$@' libtool=no @AMDEPBACKSLASH@
-       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-endif
-       $(COMPILE) -c -DSCRIPTDIR='"$(scriptdir)"' -DBINDIR='"$(bindir)"' \
-         -DTOOLBINDIR='"$(tooldir)/bin"' \
-         $(srcdir)/ldfile.c
-endif
-
-eelf32_spu.@OBJEXT@: eelf32_spu.c
+eelf32_spu.lo: eelf32_spu.c
 if am__fastdepCC
        $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ \
          -DEMBEDSPU="\"`echo embedspu | sed '$(transform)'`\"" eelf32_spu.c
@@ -1999,19 +1984,22 @@ eshlelf64_nbsd.c: $(srcdir)/emulparams/shlelf64_nbsd.sh 
\
 
 
 # We need this for automake to use YLWRAP.
-EXTRA_ld_new_SOURCES = deffilep.y ldlex.l
+EXTRA_libld_la_SOURCES = deffilep.y ldlex.l
 # Allow dependency tracking to work for these files, too.
-EXTRA_ld_new_SOURCES += pep-dll.c pe-dll.c
+EXTRA_libld_la_SOURCES += pep-dll.c pe-dll.c
+
+ld_new_SOURCES = ldmainmain.c
 
-ld_new_SOURCES = ldgram.y ldlex-wrapper.c lexsup.c ldlang.c mri.c ldctor.c 
ldmain.c \
+libld_la_SOURCES = ldgram.y ldlex-wrapper.c lexsup.c ldlang.c mri.c ldctor.c 
ldmain.c \
        ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c 
$(PLUGIN_C) \
        ldbuildid.c
-ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \
+libld_la_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \
                      $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP)
-ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) 
$(LIBINTL)
+libld_la_LIBADD =  $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) 
$(LIBIBERTY) $(LIBINTL)
+ld_new_LDADD = libld.la
 
 # Dependency tracking for the generated emulation files.
-EXTRA_ld_new_SOURCES += $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES)
+EXTRA_libld_la_SOURCES += $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES)
 
 # This is the real libbfd.a created by libtool.
 TESTBFDLIB = @TESTBFDLIB@
-- 
1.8.5.3

Reply via email to