This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
hppa patchset 4 of 4
- To: binutils at sourceware dot cygnus dot com
- Subject: hppa patchset 4 of 4
- From: Alan Modra <alan at linuxcare dot com dot au>
- Date: Sun, 9 Jul 2000 00:46:09 +1000 (EST)
- cc: Jeffrey A Law <law at cygnus dot com>
ld/ minus emultemp/hppaelf.em because again it's quite a large patch.
ld/ChangeLog
Changes to create multiple linker stubs, positioned immediately
before the section where they are required.
* emultempl/hppaelf.em: Include elf32-hppa.h.
(stub_sec, file_chain): Delete.
(hppaelf_create_output_section_statements): Don't make a stub
section here.
(hook_stub_info): New struct.
(hook_in_stub): New function.
(hppaelf_add_stub_section): New function.
(hppaelf_finish): Do nothing for relocateable links. Modify the
call to elf32_hppa_size_stubs. Move code for updating section
layout from here...
(hppaelf_layaout_sections_again): ..to here, a new function.
* emultempl/hppaelf.em (hppaelf_delete_padding_statements): Fix
broken list handling. Pass in a pointer to the list.
(hppaelf_finish): Update call to hppaelf_delete_padding_statements
for above changes.
(hppaelf_before_parse): Prototype.
(hppaelf_set_output_arch): Prototype.
(hppaelf_create_output_section_statements): Prototype.
(hppaelf_delete_padding_statements): Prototype.
(hppaelf_finish): Prototype.
Merge from elf32.em
* emultempl/hppaelf.em: Include ctype.h.
(struct orphan_save): New.
(gld${EMULATION_NAME}_place_orphan): New.
(output_rel_find): New.
(hppaelf_get_script): Update from elf32.em.
(ld_hppaelf_emulation): Rename to ld_${EMULATION_NAME}_emulation.
Change emulation_name field to "${EMULATION_NAME}". Add
gld${EMULATION_NAME}_place_orphan.
* Makefile.am (ALL_EMULATIONS): Reinstate ehppaelf.o, add
ehppalinux.o, sort it. Regenerate dependencies.
(ehppalinux.c): Depend on hppaelf.em
* Makefile.in: Regenerate.
* configure.tgt: targ_emul=hppalinux for hppa*linux
* emulparams/hppalinux.sh: New.
* emulparams/hppaelf.sh (TARGET_PAGE_SIZE): Write in hex.
Index: ld/Makefile.am
===================================================================
RCS file: /cvs/src/src/ld/Makefile.am,v
retrieving revision 1.39
diff -u -p -r1.39 Makefile.am
--- Makefile.am 2000/07/02 01:15:56 1.39
+++ Makefile.am 2000/07/08 13:46:24
@@ -104,53 +104,53 @@ ALL_EMULATIONS = \
eaixrs6.o \
ealpha.o \
earcelf.o \
- earmelf.o \
- earmelf_oabi.o \
- earmelf_linux.o \
- earmelf_linux26.o \
+ earm_epoc_pe.o \
earmaoutb.o \
earmaoutl.o \
earmcoff.o \
+ earmelf.o \
+ earmelf_linux.o \
+ earmelf_linux26.o \
+ earmelf_oabi.o \
earmnbsd.o \
earmpe.o \
- earm_epoc_pe.o \
eavr1200.o \
eavr23xx.o \
- eavr44x4.o \
eavr4433.o \
+ eavr44x4.o \
eavr85xx.o \
- eavrmega603.o \
eavrmega103.o \
eavrmega161.o \
+ eavrmega603.o \
ecoff_sparc.o \
ed10velf.o \
- ed30velf.o \
ed30v_e.o \
ed30v_o.o \
+ ed30velf.o \
edelta68.o \
eebmon29k.o \
- eelf32_sparc.o \
eelf32_i960.o \
+ eelf32_sparc.o \
eelf32b4300.o \
eelf32bmip.o \
- eelf32ebmip.o \
- eelf32elmip.o \
eelf32bmipn32.o \
eelf32btsmip.o \
+ eelf32ebmip.o \
+ eelf32elmip.o \
+ eelf32fr30.o \
eelf32i370.o \
eelf32l4300.o \
eelf32lmip.o \
eelf32lppc.o \
eelf32lppcsim.o \
+ eelf32mcore.o \
eelf32ppc.o \
- eelf32ppcsim.o \
eelf32ppclinux.o \
+ eelf32ppcsim.o \
eelf_i386.o \
eelf_i386_be.o \
egld960.o \
egld960coff.o \
- eelf32fr30.o \
- eelf32mcore.o \
eh8300.o \
eh8300h.o \
eh8300s.o \
@@ -161,6 +161,8 @@ ALL_EMULATIONS = \
eh8500s.o \
ehp300bsd.o \
ehp3hpux.o \
+ ehppaelf.o \
+ ehppalinux.o \
ei386aout.o \
ei386beos.o \
ei386bsd.o \
@@ -199,10 +201,10 @@ ALL_EMULATIONS = \
emipslnews.o \
emipspe.o \
enews.o \
- epjelf.o \
- epjlelf.o \
ens32knbsd.o \
epc532macha.o \
+ epjelf.o \
+ epjlelf.o \
eppcmacos.o \
eppcnw.o \
eppcpe.o \
@@ -210,8 +212,8 @@ ALL_EMULATIONS = \
esa29200.o \
esh.o \
eshelf.o \
- eshlelf.o \
eshl.o \
+ eshlelf.o \
eshpe.o \
esparcaout.o \
esparclinux.o \
@@ -231,20 +233,16 @@ ALL_EMULATIONS = \
ez8001.o \
ez8002.o
-# The following object file has been removed from ALL_EMULATIONS
-# because the BFD support is currently broken.
-# ehppaelf.o
-
ALL_64_EMULATIONS = \
eelf64_ia64.o \
eelf64_sparc.o \
eelf64alpha.o \
- eelf64hppa.o \
- eelf64bmip.o
+ eelf64bmip.o \
+ eelf64hppa.o
ALL_EMUL_EXTRA_OFILES = \
- pe-dll.o \
- deffilep.o
+ deffilep.o \
+ pe-dll.o
CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
@@ -521,6 +519,9 @@ ehp3hpux.c: $(srcdir)/emulparams/hp3hpux
ehppaelf.c: $(srcdir)/emulparams/hppaelf.sh \
$(srcdir)/emultempl/hppaelf.em $(srcdir)/scripttempl/hppaelf.sc ${GEN_DEPENDS}
${GENSCRIPTS} hppaelf "$(tdir_hppaelf)"
+ehppalinux.c: $(srcdir)/emulparams/hppalinux.sh \
+ $(srcdir)/emultempl/hppaelf.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} hppalinux "$(tdir_hppalinux)"
ei386aout.c: $(srcdir)/emulparams/i386aout.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} i386aout "$(tdir_i386aout)"
Index: ld/configure.tgt
===================================================================
RCS file: /cvs/src/src/ld/configure.tgt,v
retrieving revision 1.32
diff -u -p -r1.32 configure.tgt
--- configure.tgt 2000/07/02 01:15:56 1.32
+++ configure.tgt 2000/07/08 13:46:29
@@ -208,6 +208,7 @@ m68*-*-netbsd*) targ_emul=m68knbsd ;;
m68*-*-psos*) targ_emul=m68kpsos ;;
m68*-*-rtems*) targ_emul=m68kcoff ;;
hppa*64*-*) targ_emul=elf64hppa ;;
+hppa*-*-linux-gnu*) targ_emul=hppalinux ;;
hppa*-*-*elf*) targ_emul=hppaelf ;;
hppa*-*-linux-gnu*) targ_emul=hppaelf ;;
hppa*-*-lites*) targ_emul=hppaelf ;;
Index: ld/emulparams/hppaelf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/hppaelf.sh,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 hppaelf.sh
--- hppaelf.sh 1999/05/03 07:29:07 1.1.1.1
+++ hppaelf.sh 2000/07/08 13:46:30
@@ -1,7 +1,7 @@
SCRIPT_NAME=hppaelf
OUTPUT_FORMAT="elf32-hppa"
TEXT_START_ADDR=0x1000
-TARGET_PAGE_SIZE=4096
+TARGET_PAGE_SIZE=0x1000
ARCH=hppa
START="$START$"
TEMPLATE_NAME=hppaelf
Index: ld/emulparams/hppalinux.sh
===================================================================
RCS file: hppalinux.sh
diff -N hppalinux.sh
--- /dev/null Tue May 5 13:32:27 1998
+++ hppalinux.sh Sat Jul 8 06:46:30 2000
@@ -0,0 +1,10 @@
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-hppa"
+TEXT_START_ADDR=0x1000
+TARGET_PAGE_SIZE=0x1000
+MAXPAGESIZE=0x1000
+ARCH=hppa
+NOP=0x08000240
+START="_start"
+TEMPLATE_NAME=hppaelf
+DATA_START_SYMBOLS='$global$ = .;'