diff -rc3p -N src.orig/bfd/Makefile.am src/bfd/Makefile.am *** src.orig/bfd/Makefile.am Wed Oct 16 04:39:34 2002 --- src/bfd/Makefile.am Mon Oct 28 15:12:16 2002 *************** BFD32_BACKENDS = \ *** 233,239 **** elf32-or32.lo \ elf32-pj.lo \ elf32-ppc.lo \ - elf32-qnx.lo \ elf32-s390.lo \ elf32-sh.lo \ elf32-sh64.lo \ --- 233,238 ---- *************** BFD32_BACKENDS_CFILES = \ *** 388,394 **** elf32-or32.c \ elf32-pj.c \ elf32-ppc.c \ - elf32-qnx.c \ elf32-sh64.c \ elf32-sh64-com.c \ elf32-s390.c \ --- 387,392 ---- *************** CFILES = $(SOURCE_CFILES) $(BUILD_CFILES *** 561,567 **** ## This is a list of all .h files which are in the source tree. SOURCE_HFILES = \ aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h ecoffswap.h \ ! elf-bfd.h elf-hppa.h elf32-arm.h elf32-hppa.h elf32-qnx.h \ elf64-hppa.h elfcode.h elfcore.h elflink.h \ freebsd.h genlink.h go32stub.h \ libaout.h libbfd.h libcoff.h libecoff.h libhppa.h libieee.h \ --- 559,565 ---- ## This is a list of all .h files which are in the source tree. SOURCE_HFILES = \ aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h ecoffswap.h \ ! elf-bfd.h elf-hppa.h elf32-arm.h elf32-hppa.h \ elf64-hppa.h elfcode.h elfcore.h elflink.h \ freebsd.h genlink.h go32stub.h \ libaout.h libbfd.h libcoff.h libecoff.h libhppa.h libieee.h \ *************** elfarm-oabi.lo: elfarm-oabi.c $(INCDIR)/ *** 1099,1105 **** elfarm-nabi.lo: elfarm-nabi.c $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h \ $(INCDIR)/filenames.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ ! elf32-arm.h elf32-target.h elf32-qnx.h elf32-avr.lo: elf32-avr.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/reloc-macros.h \ --- 1097,1103 ---- elfarm-nabi.lo: elfarm-nabi.c $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h \ $(INCDIR)/filenames.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ ! elf32-arm.h elf32-target.h elf32-avr.lo: elf32-avr.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/reloc-macros.h \ *************** elf32-i370.lo: elf32-i370.c $(INCDIR)/fi *** 1146,1152 **** elf32-i386.lo: elf32-i386.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/reloc-macros.h \ ! elf32-target.h elf32-qnx.h elf32-i860.lo: elf32-i860.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/reloc-macros.h \ --- 1144,1150 ---- elf32-i386.lo: elf32-i386.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/reloc-macros.h \ ! elf32-target.h elf32-i860.lo: elf32-i860.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/reloc-macros.h \ *************** elf32-pj.lo: elf32-pj.c $(INCDIR)/filena *** 1217,1226 **** elf32-ppc.lo: elf32-ppc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \ ! elf32-target.h elf32-qnx.h ! elf32-qnx.lo: elf32-qnx.c $(INCDIR)/filenames.h elf-bfd.h \ ! $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ ! $(INCDIR)/bfdlink.h elf32-qnx.h elf32-sh64.lo: elf32-sh64.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(srcdir)/../opcodes/sh64-opc.h \ --- 1215,1221 ---- elf32-ppc.lo: elf32-ppc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \ ! elf32-target.h elf32-sh64.lo: elf32-sh64.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(srcdir)/../opcodes/sh64-opc.h \ *************** elf32-s390.lo: elf32-s390.c $(INCDIR)/fi *** 1237,1243 **** elf32-sh.lo: elf32-sh.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ ! elf32-target.h elf32-qnx.h elf32-sparc.lo: elf32-sparc.c $(INCDIR)/filenames.h \ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sparc.h \ --- 1232,1238 ---- elf32-sh.lo: elf32-sh.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ ! elf32-target.h elf32-sparc.lo: elf32-sparc.c $(INCDIR)/filenames.h \ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sparc.h \ diff -rc3p -N src.orig/bfd/config.bfd src/bfd/config.bfd *** src.orig/bfd/config.bfd Fri Oct 25 17:48:58 2002 --- src/bfd/config.bfd Mon Oct 28 15:13:33 2002 *************** case "${targ}" in *** 139,146 **** targ_underscore=yes ;; arm-*-nto* | nto*arm*) ! targ_defvec=bfd_elf32_littlearmqnx_vec ! targ_selvecs=bfd_elf32_bigarmqnx_vec ;; arm-*-riscix*) targ_defvec=riscix_vec --- 139,146 ---- targ_underscore=yes ;; arm-*-nto* | nto*arm*) ! targ_defvec=bfd_elf32_littlearm_vec ! targ_selvecs=bfd_elf32_bigarm_vec ;; arm-*-riscix*) targ_defvec=riscix_vec *************** case "${targ}" in *** 371,377 **** targ_selvecs=i386coff_vec ;; i[3456]86-*-nto-qnx*) ! targ_defvec=bfd_elf32_i386qnx_vec targ_selvecs=i386coff_vec ;; i[3456]86-*-chorus*) --- 371,377 ---- targ_selvecs=i386coff_vec ;; i[3456]86-*-nto-qnx*) ! targ_defvec=bfd_elf32_i386_vec targ_selvecs=i386coff_vec ;; i[3456]86-*-chorus*) *************** case "${targ}" in *** 893,904 **** targ_selvecs="nlm32_powerpc_vec rs6000coff_vec" ;; powerpc-*-nto*) ! targ_defvec=bfd_elf32_powerpcqnx_vec ! targ_selvecs="rs6000coff_vec bfd_elf32_powerpcleqnx_vec ppcboot_vec" ;; powerpcle-*-nto*) ! targ_defvec=bfd_elf32_powerpcleqnx_vec ! targ_selvecs="rs6000coff_vec bfd_elf32_powerpcqnx_vec ppcboot_vec" ;; powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ --- 893,904 ---- targ_selvecs="nlm32_powerpc_vec rs6000coff_vec" ;; powerpc-*-nto*) ! targ_defvec=bfd_elf32_powerpc_vec ! targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec" ;; powerpcle-*-nto*) ! targ_defvec=bfd_elf32_powerpcle_vec ! targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" ;; powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ *************** case "${targ}" in *** 1021,1028 **** targ_underscore=yes ;; sh-*-nto*) ! targ_defvec=bfd_elf32_shqnx_vec ! targ_selvecs="bfd_elf32_shlqnx_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec" targ_underscore=yes ;; sh-*-pe) --- 1021,1028 ---- targ_underscore=yes ;; sh-*-nto*) ! targ_defvec=bfd_elf32_sh_vec ! targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec" targ_underscore=yes ;; sh-*-pe) diff -rc3p -N src.orig/bfd/configure.in src/bfd/configure.in *** src.orig/bfd/configure.in Wed Oct 16 04:39:35 2002 --- src/bfd/configure.in Mon Oct 28 15:16:08 2002 *************** do *** 557,564 **** bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; bfd_elf32_bigarm_oabi_vec) tb="$tb elfarm-oabi.lo elf32.lo $elf" ;; ! bfd_elf32_bigarm_vec) tb="$tb elfarm-nabi.lo elf32-qnx.lo elf32.lo $elf" ;; ! bfd_elf32_bigarmqnx_vec) tb="$tb elfarm-nabi.lo elf32-qnx.lo elf32.lo $elf" ;; bfd_elf32_bigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;; bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;; --- 557,563 ---- bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; bfd_elf32_bigarm_oabi_vec) tb="$tb elfarm-oabi.lo elf32.lo $elf" ;; ! bfd_elf32_bigarm_vec) tb="$tb elfarm-nabi.lo elf32.lo $elf" ;; bfd_elf32_bigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;; bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;; *************** do *** 570,578 **** bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; ! bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf32-qnx.lo elf32.lo $elf" ;; ! bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32-qnx.lo elf32.lo $elf" ;; ! bfd_elf32_i386qnx_vec) tb="$tb elf32-i386.lo elf32-qnx.lo elf32.lo $elf" ;; bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;; --- 569,576 ---- bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; ! bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;; ! bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;; bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;; *************** do *** 582,589 **** bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; bfd_elf32_littlearm_oabi_vec) tb="$tb elfarm-oabi.lo elf32.lo $elf" ;; ! bfd_elf32_littlearm_vec) tb="$tb elfarm-nabi.lo elf32-qnx.lo elf32.lo $elf" ;; ! bfd_elf32_littlearmqnx_vec) tb="$tb elfarm-nabi.lo elf32-qnx.lo elf32.lo $elf" ;; bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;; bfd_elf32_m68hc11_vec) tb="$tb elf32-m68hc11.lo elf32.lo $elf" ;; --- 580,586 ---- bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; bfd_elf32_littlearm_oabi_vec) tb="$tb elfarm-oabi.lo elf32.lo $elf" ;; ! bfd_elf32_littlearm_vec) tb="$tb elfarm-nabi.lo elf32.lo $elf" ;; bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;; bfd_elf32_m68hc11_vec) tb="$tb elf32-m68hc11.lo elf32.lo $elf" ;; *************** do *** 602,611 **** bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;; bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";; bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";; ! bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf32-qnx.lo elf32.lo $elf" ;; ! bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.lo elf32-qnx.lo elf32.lo $elf" ;; ! bfd_elf32_powerpcleqnx_vec) tb="$tb elf32-ppc.lo elf32-qnx.lo elf32.lo $elf" ;; ! bfd_elf32_powerpcqnx_vec) tb="$tb elf32-ppc.lo elf32-qnx.lo elf32.lo $elf" ;; bfd_elf32_s390_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;; # FIXME: We include cofflink.lo not because it's needed for # bfd_elf32_sh64[l]_vec, but because we include bfd_elf32_sh[l]_vec --- 599,606 ---- bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;; bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";; bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";; ! bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf32.lo $elf" ;; ! bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.lo elf32.lo $elf" ;; bfd_elf32_s390_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;; # FIXME: We include cofflink.lo not because it's needed for # bfd_elf32_sh64[l]_vec, but because we include bfd_elf32_sh[l]_vec *************** do *** 616,629 **** bfd_elf32_sh64blin_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64lnbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh64nbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; ! bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf32-qnx.lo elf32.lo $elf coff-sh.lo" ;; ! bfd_elf32_shblin_vec) tb="$tb elf32-sh.lo elf32-qnx.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ! bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf32-qnx.lo elf32.lo elf32-qnx.lo $elf coff-sh.lo" ;; ! bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf32-qnx.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ! bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf32-qnx.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ! bfd_elf32_shlqnx_vec) tb="$tb elf32-sh.lo elf32-qnx.lo elf32.lo $elf coff-sh.lo" ;; ! bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf32-qnx.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ! bfd_elf32_shqnx_vec) tb="$tb elf32-sh.lo elf32-qnx.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elf32.lo $elf" ;; bfd_elf32_tradbigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_tradlittlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; --- 611,622 ---- bfd_elf32_sh64blin_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64lnbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh64nbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; ! bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; ! bfd_elf32_shblin_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ! bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; ! bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ! bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ! bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elf32.lo $elf" ;; bfd_elf32_tradbigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_tradlittlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; diff -rc3p -N src.orig/bfd/elf.c src/bfd/elf.c *** src.orig/bfd/elf.c Sat Oct 19 09:52:58 2002 --- src/bfd/elf.c Mon Oct 28 15:10:52 2002 *************** Error: First section in segment (%s) sta *** 3960,3970 **** } } - /* If additional nonloadable filepos adjustments are required, - do them now. */ - if (bed->set_nonloadable_filepos) - (*bed->set_nonloadable_filepos) (abfd, phdrs); - /* Clear out any program headers we allocated but did not use. */ for (; count < alloc; count++, p++) { --- 3960,3965 ---- *************** copy_private_bfd_data (ibfd, obfd) *** 4560,4572 **** && (section->lma + section->_raw_size \ <= SEGMENT_END (segment, base))) - /* Returns true if the given section is contained within the - given segment. Filepos addresses are compared in an elf - backend function. */ - #define IS_CONTAINED_BY_FILEPOS(sec, seg, bed) \ - (bed->is_contained_by_filepos \ - && (*bed->is_contained_by_filepos) (sec, seg)) - /* Special case: corefile "NOTE" section containing regs, prpsinfo etc. */ #define IS_COREFILE_NOTE(p, s) \ (p->p_type == PT_NOTE \ --- 4555,4560 ---- *************** copy_private_bfd_data (ibfd, obfd) *** 4602,4610 **** ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr) \ : IS_CONTAINED_BY_VMA (section, segment)) \ && (section->flags & SEC_ALLOC) != 0) \ ! || IS_COREFILE_NOTE (segment, section) \ ! || (IS_CONTAINED_BY_FILEPOS (section, segment, bed) \ ! && (section->flags & SEC_ALLOC) == 0)) \ && section->output_section != NULL \ && ! section->segment_mark) --- 4590,4596 ---- ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr) \ : IS_CONTAINED_BY_VMA (section, segment)) \ && (section->flags & SEC_ALLOC) != 0) \ ! || IS_COREFILE_NOTE (segment, section)) \ && section->output_section != NULL \ && ! section->segment_mark) *************** copy_private_bfd_data (ibfd, obfd) *** 4849,4855 **** /* Match up the physical address of the segment with the LMA address of the output section. */ if (IS_CONTAINED_BY_LMA (output_section, segment, map->p_paddr) - || IS_CONTAINED_BY_FILEPOS (section, segment, bed) || IS_COREFILE_NOTE (segment, section) || (bed->want_p_paddr_set_to_zero && IS_CONTAINED_BY_VMA (output_section, segment)) --- 4835,4840 ---- *************** copy_private_bfd_data (ibfd, obfd) *** 5086,5092 **** #undef SEGMENT_END #undef IS_CONTAINED_BY_VMA #undef IS_CONTAINED_BY_LMA - #undef IS_CONTAINED_BY_FILEPOS #undef IS_COREFILE_NOTE #undef IS_SOLARIS_PT_INTERP #undef INCLUDE_SECTION_IN_SEGMENT --- 5071,5076 ---- *************** _bfd_elf_copy_private_section_data (ibfd *** 5112,5131 **** || obfd->xvec->flavour != bfd_target_elf_flavour) return true; ! /* Copy over private BFD data if it has not already been copied. ! This must be done here, rather than in the copy_private_bfd_data ! entry point, because the latter is called after the section ! contents have been set, which means that the program headers have ! already been worked out. The backend function provides a way to ! override the test conditions and code path for the call to ! copy_private_bfd_data. */ ! if (bed->copy_private_bfd_data_p) ! { ! if ((*bed->copy_private_bfd_data_p) (ibfd, isec, obfd, osec)) ! if (! copy_private_bfd_data (ibfd, obfd)) ! return false; ! } ! else if (elf_tdata (obfd)->segment_map == NULL && elf_tdata (ibfd)->phdr != NULL) { asection *s; --- 5096,5102 ---- || obfd->xvec->flavour != bfd_target_elf_flavour) return true; ! if (elf_tdata (obfd)->segment_map == NULL && elf_tdata (ibfd)->phdr != NULL) { asection *s; diff -rc3p -N src.orig/bfd/elf32-i386.c src/bfd/elf32-i386.c *** src.orig/bfd/elf32-i386.c Wed Oct 16 04:39:37 2002 --- src/bfd/elf32-i386.c Mon Oct 28 15:17:30 2002 *************** elf_i386_post_process_headers (abfd, lin *** 3429,3448 **** #undef elf_backend_post_process_headers #undef elf32_bed - - /* QNX support. */ - #include "elf32-qnx.h" - - #undef TARGET_LITTLE_SYM - #define TARGET_LITTLE_SYM bfd_elf32_i386qnx_vec - #undef TARGET_LITTLE_NAME - #define TARGET_LITTLE_NAME "elf32-i386-nto" - - #define elf32_bed elf32_i386_qnx_bed - - #include "elf32-target.h" - - #undef elf_backend_set_nonloadable_filepos - #undef elf_backend_is_contained_by_filepos - #undef elf_backend_copy_private_bfd_data_p - #undef elf32_bed --- 3429,3431 ---- diff -rc3p -N src.orig/bfd/elf32-ppc.c src/bfd/elf32-ppc.c *** src.orig/bfd/elf32-ppc.c Wed Oct 16 04:39:37 2002 --- src/bfd/elf32-ppc.c Mon Oct 28 15:26:41 2002 *************** ppc_elf_grok_psinfo (abfd, note) *** 3850,3873 **** #define elf_backend_reloc_type_class ppc_elf_reloc_type_class #include "elf32-target.h" - - /* QNX support. */ - #include "elf32-qnx.h" - - #undef TARGET_LITTLE_SYM - #define TARGET_LITTLE_SYM bfd_elf32_powerpcleqnx_vec - #undef TARGET_LITTLE_NAME - #define TARGET_LITTLE_NAME "elf32-powerpcle-nto" - #undef TARGET_BIG_SYM - #define TARGET_BIG_SYM bfd_elf32_powerpcqnx_vec - #undef TARGET_BIG_NAME - #define TARGET_BIG_NAME "elf32-powerpc-nto" - - #define elf32_bed elf32_ppc_qnx_bed - - #include "elf32-target.h" - - #undef elf_backend_set_nonloadable_filepos - #undef elf_backend_is_contained_by_filepos - #undef elf_backend_copy_private_bfd_data_p - #undef elf32_bed --- 3850,3852 ---- diff -rc3p -N src.orig/bfd/elf32-qnx.c src/bfd/elf32-qnx.c *** src.orig/bfd/elf32-qnx.c Wed Oct 16 04:39:37 2002 --- src/bfd/elf32-qnx.c Wed Dec 31 19:00:00 1969 *************** *** 1,92 **** - /* QNX specific support for 32-bit ELF - Copyright 2002 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - - #include "bfd.h" - #include "sysdep.h" - #include "elf-bfd.h" - #include "elf32-qnx.h" - - /* Returns the end address of the segment + 1. */ - #define SEGMENT_END(segment, start) \ - (start + (segment->p_memsz > segment->p_filesz \ - ? segment->p_memsz : segment->p_filesz)) - - boolean - elf_qnx_copy_private_bfd_data_p (ibfd, isec, obfd, osec) - bfd *ibfd ATTRIBUTE_UNUSED; - asection *isec; - bfd *obfd ATTRIBUTE_UNUSED; - asection *osec ATTRIBUTE_UNUSED; - { - return isec->next == NULL; - } - - boolean - elf_qnx_is_contained_by_filepos (section, segment) - asection *section; - Elf_Internal_Phdr *segment; - { - return ((bfd_vma) section->filepos >= segment->p_offset - && ((bfd_vma) section->filepos + section->_raw_size - <= SEGMENT_END (segment, segment->p_offset))); - } - - void - elf_qnx_set_nonloadable_filepos (abfd, phdrs) - bfd *abfd; - Elf_Internal_Phdr *phdrs; - { - struct elf_segment_map *m; - Elf_Internal_Phdr *p; - file_ptr off = 0; - - for (m = elf_tdata (abfd)->segment_map, p = phdrs; - m != NULL; - m = m->next, p++) - { - unsigned int i; - asection **secpp; - - for (i = 0, secpp = m->sections; i < m->count; i++, secpp++) - { - asection *sec; - - sec = *secpp; - - if (p->p_type == PT_LOAD) - off = sec->filepos; - else - { - if (i == 0) - { - if (sec->filepos) - p->p_offset = sec->filepos; - else - p->p_offset = off; - } - if (!sec->filepos) - { - off += sec->_raw_size; - p->p_filesz += sec->_raw_size; - } - } - } - } - return; - } --- 0 ---- diff -rc3p -N src.orig/bfd/elf32-qnx.h src/bfd/elf32-qnx.h *** src.orig/bfd/elf32-qnx.h Wed Oct 16 04:39:37 2002 --- src/bfd/elf32-qnx.h Wed Dec 31 19:00:00 1969 *************** *** 1,32 **** - /* QNX specific support for 32-bit ELF - Copyright 2002 Free Software Foundation, Inc. - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - - boolean elf_qnx_copy_private_bfd_data_p - PARAMS ((bfd *, asection *, bfd *, asection *)); - boolean elf_qnx_is_contained_by_filepos - PARAMS ((asection *, Elf_Internal_Phdr *)); - void elf_qnx_set_nonloadable_filepos - PARAMS ((bfd *, Elf_Internal_Phdr *)); - - #undef elf_backend_set_nonloadable_filepos - #define elf_backend_set_nonloadable_filepos elf_qnx_set_nonloadable_filepos - #undef elf_backend_is_contained_by_filepos - #define elf_backend_is_contained_by_filepos elf_qnx_is_contained_by_filepos - #undef elf_backend_copy_private_bfd_data_p - #define elf_backend_copy_private_bfd_data_p elf_qnx_copy_private_bfd_data_p --- 0 ---- diff -rc3p -N src.orig/bfd/elf32-sh.c src/bfd/elf32-sh.c *** src.orig/bfd/elf32-sh.c Wed Oct 16 04:39:37 2002 --- src/bfd/elf32-sh.c Mon Oct 28 15:27:12 2002 *************** elf32_shlin_grok_psinfo (abfd, note) *** 7449,7477 **** #include "elf32-target.h" - /* QNX support. */ - #include "elf32-qnx.h" - - #undef TARGET_LITTLE_SYM - #define TARGET_LITTLE_SYM bfd_elf32_shlqnx_vec - #undef TARGET_LITTLE_NAME - #define TARGET_LITTLE_NAME "elf32-shl-nto" - #undef TARGET_BIG_SYM - #define TARGET_BIG_SYM bfd_elf32_shqnx_vec - #undef TARGET_BIG_NAME - #define TARGET_BIG_NAME "elf32-sh-nto" - #undef ELF_MAXPAGESIZE - #define ELF_MAXPAGESIZE 0x1000 - - #define elf32_bed elf32_sh_qnx_bed - - #include "elf32-target.h" - - #undef elf_backend_set_nonloadable_filepos - #undef elf_backend_is_contained_by_filepos - #undef elf_backend_copy_private_bfd_data_p - #undef elf32_bed - /* NetBSD support. */ #undef TARGET_BIG_SYM #define TARGET_BIG_SYM bfd_elf32_shnbsd_vec --- 7449,7454 ---- diff -rc3p -N src.orig/bfd/elfarm-nabi.c src/bfd/elfarm-nabi.c *** src.orig/bfd/elfarm-nabi.c Wed Oct 16 22:59:15 2002 --- src/bfd/elfarm-nabi.c Mon Oct 28 15:19:05 2002 *************** elf32_arm_nabi_grok_psinfo (abfd, note) *** 750,775 **** #define elf_backend_grok_psinfo elf32_arm_nabi_grok_psinfo #include "elf32-arm.h" - - /* QNX support. */ - #include "elf32-qnx.h" - - #undef TARGET_LITTLE_SYM - #define TARGET_LITTLE_SYM bfd_elf32_littlearmqnx_vec - #undef TARGET_LITTLE_NAME - #define TARGET_LITTLE_NAME "elf32-littlearm-nto" - #undef TARGET_BIG_SYM - #define TARGET_BIG_SYM bfd_elf32_bigarmqnx_vec - #undef TARGET_BIG_NAME - #define TARGET_BIG_NAME "elf32-bigarm-nto" - #undef ELF_MAXPAGESIZE - #define ELF_MAXPAGESIZE 0x1000 - - #define elf32_bed elf32_arm_qnx_bed - - #include "elf32-target.h" - - #undef elf_backend_set_nonloadable_filepos - #undef elf_backend_is_contained_by_filepos - #undef elf_backend_copy_private_bfd_data_p - #undef elf32_bed --- 750,752 ---- diff -rc3p -N src.orig/bfd/targets.c src/bfd/targets.c *** src.orig/bfd/targets.c Mon Oct 21 07:01:00 2002 --- src/bfd/targets.c Mon Oct 28 14:54:39 2002 *************** extern const bfd_target bfd_elf32_big_ge *** 508,514 **** extern const bfd_target bfd_elf32_bigarc_vec; extern const bfd_target bfd_elf32_bigarm_oabi_vec; extern const bfd_target bfd_elf32_bigarm_vec; - extern const bfd_target bfd_elf32_bigarmqnx_vec; extern const bfd_target bfd_elf32_bigmips_vec; extern const bfd_target bfd_elf32_cris_vec; extern const bfd_target bfd_elf32_d10v_vec; --- 508,513 ---- *************** extern const bfd_target bfd_elf32_hppa_v *** 522,528 **** extern const bfd_target bfd_elf32_i370_vec; extern const bfd_target bfd_elf32_i386_freebsd_vec; extern const bfd_target bfd_elf32_i386_vec; - extern const bfd_target bfd_elf32_i386qnx_vec; extern const bfd_target bfd_elf32_i860_little_vec; extern const bfd_target bfd_elf32_i860_vec; extern const bfd_target bfd_elf32_i960_vec; --- 521,526 ---- *************** extern const bfd_target bfd_elf32_little *** 533,539 **** extern const bfd_target bfd_elf32_littlearc_vec; extern const bfd_target bfd_elf32_littlearm_oabi_vec; extern const bfd_target bfd_elf32_littlearm_vec; - extern const bfd_target bfd_elf32_littlearmqnx_vec; extern const bfd_target bfd_elf32_littlemips_vec; extern const bfd_target bfd_elf32_m32r_vec; extern const bfd_target bfd_elf32_m68hc11_vec; --- 531,536 ---- *************** extern const bfd_target bfd_elf32_pj_vec *** 554,561 **** extern const bfd_target bfd_elf32_pjl_vec; extern const bfd_target bfd_elf32_powerpc_vec; extern const bfd_target bfd_elf32_powerpcle_vec; - extern const bfd_target bfd_elf32_powerpcleqnx_vec; - extern const bfd_target bfd_elf32_powerpcqnx_vec; extern const bfd_target bfd_elf32_s390_vec; extern const bfd_target bfd_elf32_sh64_vec; extern const bfd_target bfd_elf32_sh64l_vec; --- 551,556 ---- *************** extern const bfd_target bfd_elf32_shblin *** 568,576 **** extern const bfd_target bfd_elf32_shl_vec; extern const bfd_target bfd_elf32_shlin_vec; extern const bfd_target bfd_elf32_shlnbsd_vec; - extern const bfd_target bfd_elf32_shlqnx_vec; extern const bfd_target bfd_elf32_shnbsd_vec; - extern const bfd_target bfd_elf32_shqnx_vec; extern const bfd_target bfd_elf32_sparc_vec; extern const bfd_target bfd_elf32_tradbigmips_vec; extern const bfd_target bfd_elf32_tradlittlemips_vec; --- 563,569 ---- *************** static const bfd_target * const _bfd_tar *** 793,799 **** &bfd_elf32_bigarc_vec, &bfd_elf32_bigarm_oabi_vec, &bfd_elf32_bigarm_vec, - &bfd_elf32_bigarmqnx_vec, &bfd_elf32_bigmips_vec, &bfd_elf32_cris_vec, &bfd_elf32_d10v_vec, --- 786,791 ---- *************** static const bfd_target * const _bfd_tar *** 807,813 **** &bfd_elf32_i370_vec, &bfd_elf32_i386_freebsd_vec, &bfd_elf32_i386_vec, - &bfd_elf32_i386qnx_vec, &bfd_elf32_i860_little_vec, &bfd_elf32_i860_vec, &bfd_elf32_i960_vec, --- 799,804 ---- *************** static const bfd_target * const _bfd_tar *** 820,826 **** &bfd_elf32_littlearc_vec, &bfd_elf32_littlearm_oabi_vec, &bfd_elf32_littlearm_vec, - &bfd_elf32_littlearmqnx_vec, &bfd_elf32_littlemips_vec, &bfd_elf32_m32r_vec, &bfd_elf32_m68hc11_vec, --- 811,816 ---- *************** static const bfd_target * const _bfd_tar *** 843,859 **** &bfd_elf32_pjl_vec, &bfd_elf32_powerpc_vec, &bfd_elf32_powerpcle_vec, - &bfd_elf32_powerpcleqnx_vec, - &bfd_elf32_powerpcqnx_vec, &bfd_elf32_s390_vec, &bfd_elf32_sh_vec, &bfd_elf32_shblin_vec, &bfd_elf32_shl_vec, &bfd_elf32_shlin_vec, &bfd_elf32_shlnbsd_vec, - &bfd_elf32_shlqnx_vec, &bfd_elf32_shnbsd_vec, - &bfd_elf32_shqnx_vec, #ifdef BFD64 &bfd_elf32_sh64_vec, &bfd_elf32_sh64l_vec, --- 833,845 ----