This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PA64 bugfix



The value of DT_LOOS was changed about a year ago in include/elf/common.h
to conform to the latest ELF standard.  Several PA64 specific entries are
defined relative to DT_LOOS.

Thus, gnu-ld would create binaries which would have the new values for
stuff like DT_HP_LOAD_MAP, DT_HP_DLD_FLAGS, etc.  This caused some problems
for HP's dynamic linker as well as gdb.

gdb choked because it used HP's system include files which had the old
values.  Thus, when it tried to read the .dynamic section, gdb didn't know
how to interpret the new values for DT_HP_LOAD_MAP and friends it found.
This caused gdb to fail rather miserably.

This patch defines the PA64 specific .dynamic entries to be relative to the
old value of DT_LOOS (OLD_DT_LOOS).  And not surprisingly gdb and HP's dynamic
linker are much happier now.

Installed.


	* hppa.h (DT_HP_*): Define relative to OLD_DT_LOOS to be
	compatible with HP's tools.

Index: hppa.h
===================================================================
RCS file: /cvs/cvsfiles/devo/include/elf/hppa.h,v
retrieving revision 1.14
diff -c -3 -p -r1.14 hppa.h
*** hppa.h	2000/07/29 20:21:12	1.14
--- hppa.h	2000/12/11 17:09:57
*************** typedef enum elf_hppa_reloc_type elf_hpp
*** 491,509 ****
  
  /* Processor specific dynamic array tags.  */
  
! #define DT_HP_LOAD_MAP		(DT_LOOS + 0x0)
! #define DT_HP_DLD_FLAGS		(DT_LOOS + 0x1)
! #define DT_HP_DLD_HOOK		(DT_LOOS + 0x2)
! #define DT_HP_UX10_INIT		(DT_LOOS + 0x3)
! #define DT_HP_UX10_INITSZ	(DT_LOOS + 0x4)
! #define DT_HP_PREINIT		(DT_LOOS + 0x5)
! #define DT_HP_PREINITSZ		(DT_LOOS + 0x6)
! #define DT_HP_NEEDED		(DT_LOOS + 0x7)
! #define DT_HP_TIME_STAMP	(DT_LOOS + 0x8)
! #define DT_HP_CHECKSUM		(DT_LOOS + 0x9)
! #define DT_HP_GST_SIZE		(DT_LOOS + 0xa)
! #define DT_HP_GST_VERSION	(DT_LOOS + 0xb)
! #define DT_HP_GST_HASHVAL	(DT_LOOS + 0xc)
  
  /* Values for DT_HP_DLD_FLAGS.  */
  #define DT_HP_DEBUG_PRIVATE		0x0001 /* Map text private */
--- 491,512 ----
  
  /* Processor specific dynamic array tags.  */
  
! /* Arggh.  HP's tools define these symbols based on the
!    old value of DT_LOOS.  So we must do the same to be
!    compatible.  */
! #define DT_HP_LOAD_MAP		(OLD_DT_LOOS + 0x0)
! #define DT_HP_DLD_FLAGS		(OLD_DT_LOOS + 0x1)
! #define DT_HP_DLD_HOOK		(OLD_DT_LOOS + 0x2)
! #define DT_HP_UX10_INIT		(OLD_DT_LOOS + 0x3)
! #define DT_HP_UX10_INITSZ	(OLD_DT_LOOS + 0x4)
! #define DT_HP_PREINIT		(OLD_DT_LOOS + 0x5)
! #define DT_HP_PREINITSZ		(OLD_DT_LOOS + 0x6)
! #define DT_HP_NEEDED		(OLD_DT_LOOS + 0x7)
! #define DT_HP_TIME_STAMP	(OLD_DT_LOOS + 0x8)
! #define DT_HP_CHECKSUM		(OLD_DT_LOOS + 0x9)
! #define DT_HP_GST_SIZE		(OLD_DT_LOOS + 0xa)
! #define DT_HP_GST_VERSION	(OLD_DT_LOOS + 0xb)
! #define DT_HP_GST_HASHVAL	(OLD_DT_LOOS + 0xc)
  
  /* Values for DT_HP_DLD_FLAGS.  */
  #define DT_HP_DEBUG_PRIVATE		0x0001 /* Map text private */



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]