diff options
author | Dave Korn <dave.korn@artimi.com> | 2010-10-14 01:31:33 +0000 |
---|---|---|
committer | Dave Korn <dave.korn@artimi.com> | 2010-10-14 01:31:33 +0000 |
commit | 5d3236eea075e471b90b4d89bc459645abe9f50c (patch) | |
tree | 2f7cc493bbaaf54cbf2f08b4deda9e518da7f361 /ld/Makefile.in | |
parent | c2a41a512856084bbcd0cad73c54d886c5d4fa7d (diff) | |
download | gdb-5d3236eea075e471b90b4d89bc459645abe9f50c.zip gdb-5d3236eea075e471b90b4d89bc459645abe9f50c.tar.gz gdb-5d3236eea075e471b90b4d89bc459645abe9f50c.tar.bz2 |
Applied patch series for LD plugin interface (six parts).
[PATCH] Add infrastructure for plugin API; functionality to follow.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* configure.in: Add AC_CHECKs for file io and dlfcn headers and
functions and AC_SEARCH for -ldl.
(enable_plugins): New shell variable set if above tests find dlopen
functionality.
(ENABLE_PLUGINS): Add related automake conditional.
* configure: Regenerate.
* config.in: Likewise.
* Makefile.am (PLUGIN_C): Declare plugin C source file, conditional
on ENABLE_PLUGINS being defined.
(PLUGIN_H): Likewise for header file.
(PLUGIN_OBJECT): Likewise for object file.
(PLUGIN_CFLAGS): Likewise -D flag required to compile plugin support.
(AM_CPPFLAGS): Use PLUGIN_CFLAGS.
(CFILES): Use PLUGIN_C.
(HFILES): Use PLUGIN_H.
(OFILES): Use PLUGIN_OBJECT.
(ld_new_SOURCES): Use PLUGIN_C.
(noinst_LTLIBRARIES)[ENABLE_PLUGINS]: Declare test plugin.
(libldtestplug_la_SOURCES)[ENABLE_PLUGINS]: Add automake definition
for test plugin.
(libldtestplug_la_CFLAGS)[ENABLE_PLUGINS]: Likewise.
(libldtestplug_la_LDFLAGS)[ENABLE_PLUGINS]: Likewise.
* Makefile.in: Regenerate.
* sysdep.h: Include stdarg.h, unistd.h and one of fcntl.h or
sys/file.h where available. Include dlfcn.h when ENABLE_PLUGINS.
(O_RDONLY): Supply default definition likewise to bfd's sysdep.h
(O_WRONLY): Likewise.
(O_RDWR): Likewise.
(O_ACCMODE): Likewise.
(O_BINARY): Likewise.
(SEEK_SET): Likewise.
(SEEK_CUR): Likewise.
(SEEK_END): Likewise.
* ldmisc.c (vfinfo): Make non-static. Add %p format char.
* ldmisc.h (vfinfo): Declare extern prototype.
* lexsup.c (enum option_values)[ENABLE_PLUGINS]: Add new entries for
OPTION_PLUGIN and OPTION_PLUGIN_OPT.
(ld_options[])[ENABLE_PLUGINS]: Add option data for the above two.
(parse_args)[ENABLE_PLUGINS]: Handle them, and load all plugins once
option parsing is complete.
* ldmain.c (main)[ENABLE_PLUGINS]: Call plugin cleanup hooks just
after lang_finish.
* plugin.c: New source file.
* plugin.h: Likewise new header.
* testplug.c: New source file.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins
are enabled.
* lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output.
(proc set_file_contents): Write a file with the supplied content.
(run_ld_link_tests): Add new 'ld' action to test linker output.
(proc check_plugin_api_available): Return true if linker under test
supports the plugin API.
* ld-plugin/func.c: New test source file.
* ld-plugin/main.c: Likewise.
* ld-plugin/text.c: Likewise.
* ld-plugin/plugin-1.d: New dump test output pattern script.
* ld-plugin/plugin-2.d: Likewise.
* ld-plugin/plugin-3.d: Likewise.
* ld-plugin/plugin-4.d: Likewise.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin.exp: New test control script.
---
[PATCH] Implement claim file and all symbols read hooks and add symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ldfile.c (ldfile_try_open_bfd)[ENABLE_PLUGINS]: Don't return early
during compat checks if they pass, instead offer any successfully
opened and accepted file to the plugin claim file hooks chain. Create
a dummy bfd to accept symbols added by the plugin, if the plugin
claims the file.
* ldlang.c (lang_process)[ENABLE_PLUGINS]: Call plugin all symbols
read hook chain before ldemul_after_open.
* ldlang.h (struct lang_input_statement_struct): Add new single-bit
'claimed' flag.
* plugin.c (IRONLY_SUFFIX): New macro for dummy bfd file suffix.
(IRONLY_SUFFIX_LEN): Length of the above string.
(plugin_get_ir_dummy_bfd): New function to create the dummy bfd used
to store symbols for ir-only files.
(is_ir_dummy_bfd): New function to check if a bfd is ir-only.
(asymbol_from_plugin_symbol): New function converts symbol formats.
(add_symbols): Call it to convert plugin syms to bfd syms and add
them to the dummy bfd.
* plugin.h: Add missing include guards.
(plugin_get_ir_dummy_bfd): Add prototype.
(is_ir_dummy_bfd): Likewise.
* testplug.c (TV_MESSAGE): New helper macro.
(struct claim_file): New struct.
(claim_file_t): New typedef.
(tag_names[]): Make static and const.
(claimfiles_list): New variable.
(claimfiles_tail_chain_ptr): Likewise.
(last_claimfile): Likewise.
(record_claim_file): Record a file to claim on a singly-linked list.
(parse_symdefstr): Parse an ASCII representation of a symbol from a
plugin option into the fields of a struct ld_plugin_symbol.
(record_claimed_file_symbol): Use it to parse plugin option for
adding a symbol.
(parse_option): Parse claim file and add symbol options.
(dump_tv_tag): Use TV_MESSAGE.
(onload): Likewise.
(onclaim_file): Make static. Use TV_MESSAGE. Scan list of files to
claim and claim this file if required, adding any symbols specified.
(onall_symbols_read): Make static and use TV_MESSAGE.
(oncleanup): Likewise.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ld-plugin/plugin-3.d: Enable regexes for new functionality.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin-6.d: New testcase.
* ld-plugin/plugin-7.d: Likewise.
* ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine
whether symbols in plugin arguments need an underscore prefix. Add
new plugin-6.d and plugin-7.d testcases.
---
[PATCH] Implement get symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ldmain.c (notice)[ENABLE_PLUGINS]: Call plugin_notice.
* plugin.c (non_ironly_hash): Add new bfd hash table.
(plugin_load_plugins): Exit early if no plugins to load. If plugins
do load successfully, set notice_all flag in link info.
(get_symbols): Implement.
(plugin_load_plugins): Exit early if no plugins to load, else after
loading plugins successfully enable notice_all mode.
(init_non_ironly_hash): Lazily init non_ironly_hash table.
(plugin_notice): Record symbols referenced from non-IR files in the
non_ironly_hash. Suppress tracing, cref generation and nocrossrefs
tracking for symbols from dummy IR bfds.
* plugin.h: Fix formatting.
(plugin_notice): Add prototype.
* testplug.c (dumpresolutions): New global var.
(parse_options): Accept "dumpresolutions".
(onall_symbols_read): Get syms and dump resolutions if it was given.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ld-plugin/plugin-8.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Implement add input file, add input lib and set extra lib path callbacks.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ldlang.c (lang_process)[ENABLE_PLUGINS]: Move invocation of
plugin_call_all_symbols_read to before setting of gc_sym_list, and
open any new input files that may have been added during it.
* ldmain.c (multiple_definition)[ENABLE_PLUGINS]: Call out to
plugin_multiple_definition and let it have first say over what to do
with the clashing definitions.
* plugin.c (no_more_claiming): New boolean variable.
(plugin_cached_allow_multiple_defs): Likewise.
(add_input_file): Implement.
(add_input_library): Likewise.
(set_extra_library_path): Likewise.
(plugin_call_claim_file): Don't do anything when no_more_claiming set.
(plugin_call_all_symbols_read): Set it. Disable link info
"allow_multiple_definition" flag, but cache its value.
(plugin_multiple_definition): New function.
* plugin.h (plugin_multiple_definition): Add prototype.
* testplug.c (addfile_enum_t): New enumerated typedef.
(add_file_t): New struct typedef.
(addfiles_list): New variable.
(addfiles_tail_chain_ptr): Likewise.
(record_add_file): New function.
(parse_option): Parse "add:", "lib:" and "dir:" options and call it.
(onall_symbols_read): Iterate the list of new files, libs and dirs,
adding them.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ld-plugin/plugin-9.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Add ELF symbol visibility support to plugin interface.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* plugin.c (asymbol_from_plugin_symbol): If the bfd is an ELF bfd,
find the elf symbol data and set the visibility in the st_other field.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* ld-plugin/plugin-ignore.d: New dump test control script.
* ld-plugin/plugin-vis-1.d: Likewise.
* ld-plugin/plugin.exp: Add list of ELF-only tests and run them if
testing on an ELF target.
---
[PATCH] Add archive support to plugin interface.
bfd/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* bfdlink.h (struct_bfd_link_callbacks): Document new argument
to add_archive_element callback used to return a replacement bfd which
is to be added to the hash table in place of the original element.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ldlang.c (load_symbols): Handle bfd subsitution when calling the
add_archive_element callback.
* ldmain.c (add_archive_element)[ENABLE_PLUGINS]: Offer the archive
member to the plugins and if claimed set "subsbfd" output parameter to
point to the dummy IR-only BFD.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ld-plugin/plugin-10.d: New dump test control script.
* ld-plugin/plugin-11.d: Likewise.
* ld-plugin/plugin.exp: Run them.
---
Diffstat (limited to 'ld/Makefile.in')
-rw-r--r-- | ld/Makefile.in | 149 |
1 files changed, 102 insertions, 47 deletions
diff --git a/ld/Makefile.in b/ld/Makefile.in index f365e1c..d4e4a9d 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -15,6 +15,7 @@ @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ @@ -71,14 +72,25 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = po/Makefile.in CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libldtestplug_la_LIBADD = +@ENABLE_PLUGINS_TRUE@am_libldtestplug_la_OBJECTS = \ +@ENABLE_PLUGINS_TRUE@ libldtestplug_la-testplug.lo +libldtestplug_la_OBJECTS = $(am_libldtestplug_la_OBJECTS) +libldtestplug_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libldtestplug_la_CFLAGS) \ + $(CFLAGS) $(libldtestplug_la_LDFLAGS) $(LDFLAGS) -o $@ +@ENABLE_PLUGINS_TRUE@am_libldtestplug_la_rpath = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" \ "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) +@ENABLE_PLUGINS_TRUE@am__objects_1 = plugin.$(OBJEXT) am_ld_new_OBJECTS = ldgram.$(OBJEXT) ldlex-wrapper.$(OBJEXT) \ lexsup.$(OBJEXT) ldlang.$(OBJEXT) mri.$(OBJEXT) \ ldctor.$(OBJEXT) ldmain.$(OBJEXT) ldwrite.$(OBJEXT) \ ldexp.$(OBJEXT) ldemul.$(OBJEXT) ldver.$(OBJEXT) \ - ldmisc.$(OBJEXT) ldfile.$(OBJEXT) ldcref.$(OBJEXT) + ldmisc.$(OBJEXT) ldfile.$(OBJEXT) ldcref.$(OBJEXT) \ + $(am__objects_1) ld_new_OBJECTS = $(am_ld_new_OBJECTS) am__DEPENDENCIES_1 = DEFAULT_INCLUDES = -I.@am__isrc@ @@ -103,7 +115,8 @@ YLWRAP = $(top_srcdir)/../ylwrap YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS) -SOURCES = $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES) +SOURCES = $(libldtestplug_la_SOURCES) $(ld_new_SOURCES) \ + $(EXTRA_ld_new_SOURCES) INFO_DEPS = ld.info am__TEXINFO_TEX_DIR = $(srcdir)/$(top_srcdir)/../texinfo DVIS = ld.dvi @@ -333,6 +346,16 @@ tooldir = $(exec_prefix)/$(target_alias) am__skiplex = am__skipyacc = AM_CFLAGS = $(WARN_CFLAGS) +@ENABLE_PLUGINS_FALSE@PLUGIN_C = + +# Conditionally enable the plugin interface. +@ENABLE_PLUGINS_TRUE@PLUGIN_C = plugin.c +@ENABLE_PLUGINS_FALSE@PLUGIN_H = +@ENABLE_PLUGINS_TRUE@PLUGIN_H = plugin.h +@ENABLE_PLUGINS_FALSE@PLUGIN_OBJECT = +@ENABLE_PLUGINS_TRUE@PLUGIN_OBJECT = plugin.@OBJEXT@ +@ENABLE_PLUGINS_FALSE@PLUGIN_CFLAGS = +@ENABLE_PLUGINS_TRUE@PLUGIN_CFLAGS = -DENABLE_PLUGINS # We put the scripts in the directory $(scriptdir)/ldscripts. # We can't put the scripts in $(datadir) because the SEARCH_DIR @@ -399,7 +422,7 @@ TEXI2DVI = texi2dvi -I $(srcdir) -I $(BFDDIR)/doc -I ../bfd/doc \ -I $(top_srcdir)/../libiberty AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ - @INCINTL@ $(HDEFINES) $(CFLAGS) \ + @INCINTL@ $(HDEFINES) $(CFLAGS) $(PLUGIN_CFLAGS) \ -DLOCALEDIR="\"$(datadir)/locale\"" BFDLIB = ../bfd/libbfd.la @@ -747,11 +770,13 @@ ALL_EMUL_EXTRA_OFILES = \ CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \ ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \ - mri.c ldcref.c pe-dll.c pep-dll.c ldlex-wrapper.c + mri.c ldcref.c pe-dll.c pep-dll.c ldlex-wrapper.c \ + $(PLUGIN_C) HFILES = ld.h ldctor.h ldemul.h ldexp.h ldfile.h \ ldlang.h ldlex.h ldmain.h ldmisc.h ldver.h \ - ldwrite.h mri.h deffile.h pe-dll.h pep-dll.h elf-hints-local.h + ldwrite.h mri.h deffile.h pe-dll.h pep-dll.h \ + elf-hints-local.h $(PLUGIN_H) GENERATED_CFILES = ldgram.c ldlex.c deffilep.c GENERATED_HFILES = ldgram.h ldemul-list.h deffilep.h @@ -759,7 +784,8 @@ GENERATED_HFILES = ldgram.h ldemul-list.h deffilep.h # Require an early dependency on the generated headers, as the dependency # tracking will not cause them to be built beforehand. BUILT_SOURCES = $(GENERATED_HFILES) -OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@ mri.@OBJEXT@ ldctor.@OBJEXT@ ldmain.@OBJEXT@ \ +OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@ \ + mri.@OBJEXT@ ldctor.@OBJEXT@ ldmain.@OBJEXT@ $(PLUGIN_OBJECT) \ ldwrite.@OBJEXT@ ldexp.@OBJEXT@ ldemul.@OBJEXT@ ldver.@OBJEXT@ ldmisc.@OBJEXT@ \ ldfile.@OBJEXT@ ldcref.@OBJEXT@ ${EMULATION_OFILES} ${EMUL_EXTRA_OFILES} @@ -783,10 +809,49 @@ ELF_GEN_DEPS = $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em EXTRA_ld_new_SOURCES = deffilep.y ldlex.l pep-dll.c pe-dll.c \ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES) ld_new_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 + ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c $(PLUGIN_C) ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP) ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) + +# A test program for C++ constructors and destructors. +# This test is now in the testsuite. +# +#cdtest: cdtest-main.@OBJEXT@ cdtest-bar.@OBJEXT@ cdtest-foo.@OBJEXT@ ld.new +# ./ld.new $(HOSTING_EMU) -o cdtest $(HOSTING_CRT0) \ +# cdtest-main.@OBJEXT@ cdtest-bar.@OBJEXT@ cdtest-foo.@OBJEXT@ $(HOSTING_LIBS) +# +#cdtest.out: cdtest +# ./cdtest > cdtest.tmp +# mv cdtest.tmp cdtest.out +# +#cdtest-ur.@OBJEXT@: cdtest-main.@OBJEXT@ cdtest-bar.@OBJEXT@ cdtest-foo.@OBJEXT@ ld.new +# ./ld.new $(HOSTING_EMU) -o cdtest-ur.@OBJEXT@ -Ur cdtest-main.@OBJEXT@ \ +# cdtest-bar.@OBJEXT@ cdtest-foo.@OBJEXT@ +# +#cdtest-ur: cdtest-ur.@OBJEXT@ +# ./ld.new $(HOSTING_EMU) -o cdtest-ur $(HOSTING_CRT0) cdtest-ur.@OBJEXT@ \ +# $(HOSTING_LIBS) +# +#cdtest-ur.out: cdtest-ur +# ./cdtest-ur > cdtest-ur.tmp +# mv cdtest-ur.tmp cdtest-ur.out +# +#check-cdtest: cdtest.out cdtest-ur.out $(srcdir)/cdtest.exp +# diff $(srcdir)/cdtest.exp cdtest.out +# diff $(srcdir)/cdtest.exp cdtest-ur.out +# +#.PHONY: check-cdtest + +# END OF CHECK TARGETS + +# +# Build a dummy plugin using libtool. +# +@ENABLE_PLUGINS_TRUE@noinst_LTLIBRARIES = libldtestplug.la +@ENABLE_PLUGINS_TRUE@libldtestplug_la_SOURCES = testplug.c +@ENABLE_PLUGINS_TRUE@libldtestplug_la_CFLAGS = -g -O2 +@ENABLE_PLUGINS_TRUE@libldtestplug_la_LDFLAGS = -no-undefined -rpath /nowhere MAINTAINERCLEANFILES = configdoc.texi ld.1 ld.info # We want to reconfigure if configure.host or configure.tgt changes. We @@ -863,6 +928,17 @@ distclean-hdr: -rm -f config.h stamp-h1 po/Makefile.in: $(top_builddir)/config.status $(top_srcdir)/po/Make-in cd $(top_builddir) && $(SHELL) ./config.status $@ + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libldtestplug.la: $(libldtestplug_la_OBJECTS) $(libldtestplug_la_DEPENDENCIES) + $(libldtestplug_la_LINK) $(am_libldtestplug_la_rpath) $(libldtestplug_la_OBJECTS) $(libldtestplug_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @@ -1271,9 +1347,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldwrite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lexsup.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libldtestplug_la-testplug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mri.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-dll.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pep-dll.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -1296,6 +1374,13 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +libldtestplug_la-testplug.lo: testplug.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libldtestplug_la_CFLAGS) $(CFLAGS) -MT libldtestplug_la-testplug.lo -MD -MP -MF $(DEPDIR)/libldtestplug_la-testplug.Tpo -c -o libldtestplug_la-testplug.lo `test -f 'testplug.c' || echo '$(srcdir)/'`testplug.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libldtestplug_la-testplug.Tpo $(DEPDIR)/libldtestplug_la-testplug.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testplug.c' object='libldtestplug_la-testplug.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libldtestplug_la_CFLAGS) $(CFLAGS) -c -o libldtestplug_la-testplug.lo `test -f 'testplug.c' || echo '$(srcdir)/'`testplug.c + .l.c: $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) @@ -1650,7 +1735,8 @@ check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(MANS) config.h +all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) $(PROGRAMS) $(MANS) \ + config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \ @@ -1695,7 +1781,7 @@ maintainer-clean-generic: clean: clean-recursive clean-am: clean-aminfo clean-binPROGRAMS clean-generic clean-libtool \ - mostlyclean-am + clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) @@ -1855,13 +1941,13 @@ uninstall-man: uninstall-man1 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-DEJAGNU check-am clean \ clean-aminfo clean-binPROGRAMS clean-generic clean-libtool \ - ctags ctags-recursive dist-info distclean distclean-DEJAGNU \ - distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-local distclean-tags dvi dvi-am \ - html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am \ - install-data-local install-dvi install-dvi-am install-exec \ - install-exec-am install-exec-local install-html \ + clean-noinstLTLIBRARIES ctags ctags-recursive dist-info \ + distclean distclean-DEJAGNU distclean-compile \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-local distclean-tags dvi dvi-am html html-am info \ + info-am install install-am install-binPROGRAMS install-data \ + install-data-am install-data-local install-dvi install-dvi-am \ + install-exec install-exec-am install-exec-local install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ @@ -3278,37 +3364,6 @@ bootstrap: ld3$(EXEEXT) .PHONY: bootstrap -# A test program for C++ constructors and destructors. -# This test is now in the testsuite. -# -#cdtest: cdtest-main.@OBJEXT@ cdtest-bar.@OBJEXT@ cdtest-foo.@OBJEXT@ ld.new -# ./ld.new $(HOSTING_EMU) -o cdtest $(HOSTING_CRT0) \ -# cdtest-main.@OBJEXT@ cdtest-bar.@OBJEXT@ cdtest-foo.@OBJEXT@ $(HOSTING_LIBS) -# -#cdtest.out: cdtest -# ./cdtest > cdtest.tmp -# mv cdtest.tmp cdtest.out -# -#cdtest-ur.@OBJEXT@: cdtest-main.@OBJEXT@ cdtest-bar.@OBJEXT@ cdtest-foo.@OBJEXT@ ld.new -# ./ld.new $(HOSTING_EMU) -o cdtest-ur.@OBJEXT@ -Ur cdtest-main.@OBJEXT@ \ -# cdtest-bar.@OBJEXT@ cdtest-foo.@OBJEXT@ -# -#cdtest-ur: cdtest-ur.@OBJEXT@ -# ./ld.new $(HOSTING_EMU) -o cdtest-ur $(HOSTING_CRT0) cdtest-ur.@OBJEXT@ \ -# $(HOSTING_LIBS) -# -#cdtest-ur.out: cdtest-ur -# ./cdtest-ur > cdtest-ur.tmp -# mv cdtest-ur.tmp cdtest-ur.out -# -#check-cdtest: cdtest.out cdtest-ur.out $(srcdir)/cdtest.exp -# diff $(srcdir)/cdtest.exp cdtest.out -# diff $(srcdir)/cdtest.exp cdtest-ur.out -# -#.PHONY: check-cdtest - -# END OF CHECK TARGETS - # DOCUMENTATION TARGETS # Manual configuration file; not usually attached to normal configuration, # because almost all configs use "gen" version of manual. |