diff options
Diffstat (limited to 'contrib/binutils/ld/emultempl/linux.em')
-rw-r--r-- | contrib/binutils/ld/emultempl/linux.em | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/contrib/binutils/ld/emultempl/linux.em b/contrib/binutils/ld/emultempl/linux.em index 6860c3f..dfa855e 100644 --- a/contrib/binutils/ld/emultempl/linux.em +++ b/contrib/binutils/ld/emultempl/linux.em @@ -4,7 +4,7 @@ cat >e${EMULATION_NAME}.c <<EOF /* This file is is generated by a shell script. DO NOT EDIT! */ /* Linux a.out emulation code for ${EMULATION_NAME} - Copyright (C) 1991, 1993, 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1991, 93, 94, 95, 96, 98, 1999 Free Software Foundation, Inc. Written by Steve Chamberlain <sac@cygnus.com> Linux support by Eric Youngdale <ericy@cais.cais.com> @@ -53,6 +53,7 @@ gld${EMULATION_NAME}_before_parse() { ldfile_output_architecture = bfd_arch_${ARCH}; config.dynamic_link = true; + config.has_shared = true; } /* Try to open a dynamic archive. This is where we know that Linux @@ -139,28 +140,25 @@ then # Scripts compiled in. # sed commands to quote an ld script as a C string. -sc='s/["\\]/\\&/g -s/$/\\n\\/ -1s/^/"/ -$s/$/n"/ -' +sc="-f stringify.sed" cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; if (link_info.relocateable == true && config.build_constructors == true) - return `sed "$sc" ldscripts/${EMULATION_NAME}.xu`; - else if (link_info.relocateable == true) - return `sed "$sc" ldscripts/${EMULATION_NAME}.xr`; - else if (!config.text_read_only) - return `sed "$sc" ldscripts/${EMULATION_NAME}.xbn`; - else if (!config.magic_demand_paged) - return `sed "$sc" ldscripts/${EMULATION_NAME}.xn`; - else - return `sed "$sc" ldscripts/${EMULATION_NAME}.x`; -} + return EOF +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -200,8 +198,15 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = gld${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", - NULL, + NULL, /* finish */ gld${EMULATION_NAME}_create_output_section_statements, - gld${EMULATION_NAME}_open_dynamic_archive + gld${EMULATION_NAME}_open_dynamic_archive, + NULL, /* place orphan */ + NULL, /* set symbols */ + NULL, /* parse args */ + NULL, /* unrecognized file */ + NULL, /* list options */ + NULL, /* recognized file */ + NULL /* find_potential_libraries */ }; EOF |