diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-01-28 16:25:25 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-01-28 16:25:25 +0000 |
commit | 9fdb3f7aad80699becae8d400d181a2b924fb0a5 (patch) | |
tree | 9e88ae9cbfb39d1fd0af4392525a3ac8fe309bac /gdb/config | |
parent | 0b233d31dfe5919025acff17491ea0ee70491cdc (diff) | |
download | gdb-9fdb3f7aad80699becae8d400d181a2b924fb0a5.zip gdb-9fdb3f7aad80699becae8d400d181a2b924fb0a5.tar.gz gdb-9fdb3f7aad80699becae8d400d181a2b924fb0a5.tar.bz2 |
* config/pa/tm-hppa.h: Define macro SMASH_TEXT_ADDRESS.
* elfread.c (record_minimal_symbol_and_info),
dwarfread.c (process_dies), paread.c (pa_symtab_read): Use it.
Diffstat (limited to 'gdb/config')
-rw-r--r-- | gdb/config/pa/tm-hppa.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h index f2afcc1..4d970ea 100644 --- a/gdb/config/pa/tm-hppa.h +++ b/gdb/config/pa/tm-hppa.h @@ -404,11 +404,14 @@ CORE_ADDR hppa_fix_call_dummy(); #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ sp = hppa_push_arguments(nargs, args, sp, struct_return, struct_addr) - -/* Symbol files have two symbol tables. Rather than do this right, - like the ELF symbol reading code, massive hackery was added - to dbxread.c and partial-stab.h. This flag turns on that - hackery, which should all go away FIXME FIXME FIXME FIXME now. */ + +/* The low two bits of the PC on the PA contain the privilege level. Some + genius implementing a (non-GCC) compiler apparently decided this means + that "addresses" in a text section therefore include a privilege level, + and thus symbol tables should contain these bits. This seems like a + bonehead thing to do--anyway, it seems to work for our purposes to just + ignore those bits. */ +#define SMASH_TEXT_ADDRESS(addr) ((addr) &= ~0x3) #define GDB_TARGET_IS_HPPA |