diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2006-03-03 09:32:01 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2006-03-03 09:32:01 +0000 |
commit | 4f471f3957423c32c72298899a3e1f96b010d22a (patch) | |
tree | 6b9d2237599644d52b4cbd50628afd3762c295a4 /ld/emultempl | |
parent | a10138943b15cfa070d4526dc8bbec3976e51cdb (diff) | |
download | gdb-4f471f3957423c32c72298899a3e1f96b010d22a.zip gdb-4f471f3957423c32c72298899a3e1f96b010d22a.tar.gz gdb-4f471f3957423c32c72298899a3e1f96b010d22a.tar.bz2 |
ld/
* emulparams/vxworks.sh (VXWORKS_BASE_EM_FILE): New variable.
(EXTRA_EM_FILE): Define.
* emultempl/vxworks.em: New file.
* ld.texinfo (--force-dynamic): Document.
* Makefile.am (eelf32ppcvxworks.cm, eelf_i386_vxworks.c): Depend
on vxworks.em.
* Makefile.in: Regenerate.
ld/testsuite/
* ld-i386/vxworks1-static.d, ld-i386/vxworks2.s,
* ld-i386/vxworks2.sd, ld-i386/vxworks2-static.sd: New tests.
* ld-i386/i386.exp: Run them.
* ld-powerpc/vxworks1-static.d, ld-powerpc/vxworks2.s,
* ld-powerpc/vxworks2.sd, ld-powerpc/vxworks2-static.sd: New tests.
* ld-powerpc/powerpc.exp: Run them.
Diffstat (limited to 'ld/emultempl')
-rw-r--r-- | ld/emultempl/vxworks.em | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/ld/emultempl/vxworks.em b/ld/emultempl/vxworks.em new file mode 100644 index 0000000..eafbb58 --- /dev/null +++ b/ld/emultempl/vxworks.em @@ -0,0 +1,49 @@ +if test -n "$VXWORKS_BASE_EM_FILE" ; then +. "${srcdir}/emultempl/${VXWORKS_BASE_EM_FILE}.em" +fi + +cat >>e${EMULATION_NAME}.c <<EOF + +static int force_dynamic; + +static void +vxworks_after_open (void) +{ + ${LDEMUL_AFTER_OPEN-gld${EMULATION_NAME}_after_open} (); + + if (force_dynamic + && link_info.input_bfds + && !_bfd_elf_link_create_dynamic_sections (link_info.input_bfds, + &link_info)) + einfo ("%X%P: Cannot create dynamic sections %E\n"); + + if (!force_dynamic + && !link_info.shared + && elf_hash_table (&link_info)->dynamic_sections_created) + einfo ("%X%P: Dynamic sections created in non-dynamic link\n"); +} + +EOF + +PARSE_AND_LIST_PROLOGUE=$PARSE_AND_LIST_PROLOGUE' +enum { + OPTION_FORCE_DYNAMIC = 501 +}; +' + +PARSE_AND_LIST_LONGOPTS=$PARSE_AND_LIST_LONGOPTS' + {"force-dynamic", no_argument, NULL, OPTION_FORCE_DYNAMIC}, +' + +PARSE_AND_LIST_OPTIONS=$PARSE_AND_LIST_OPTIONS' + fprintf (file, _("\ + --force-dynamic Always create dynamic sections\n")); +' + +PARSE_AND_LIST_ARGS_CASES=$PARSE_AND_LIST_ARGS_CASES' + case OPTION_FORCE_DYNAMIC: + force_dynamic = 1; + break; +' + +LDEMUL_AFTER_OPEN=vxworks_after_open |