aboutsummaryrefslogtreecommitdiff
path: root/bfd/som.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1994-03-20 17:27:51 +0000
committerJeff Law <law@redhat.com>1994-03-20 17:27:51 +0000
commit142f59f4a9315edb63c6df129a5496e1ca5bd027 (patch)
tree0b1a8e4c2f414758eab926a5f4c7c67eac810038 /bfd/som.c
parent47dc9b52c2ca81cd74c6970e66891335fde4382d (diff)
downloadgdb-142f59f4a9315edb63c6df129a5496e1ca5bd027.zip
gdb-142f59f4a9315edb63c6df129a5496e1ca5bd027.tar.gz
gdb-142f59f4a9315edb63c6df129a5496e1ca5bd027.tar.bz2
* som.c (som_begin_writing): Align text in all executables to
make HPUX kernel happy. Fixes strip/objcopy for shared executables.
Diffstat (limited to 'bfd/som.c')
-rw-r--r--bfd/som.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/bfd/som.c b/bfd/som.c
index f17e064..a355b75 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -2980,8 +2980,12 @@ som_begin_writing (abfd)
/* Demand paged executables have each space aligned to a
page boundary. Sharable executables (write-protected
text) have just the private (aka data & bss) space aligned
- to a page boundary. */
+ to a page boundary. Ugh. Not true for HPUX.
+
+ The HPUX kernel requires the text to always be page aligned
+ within the file regardless of the executable's type. */
if (abfd->flags & D_PAGED
+ || (subsection->flags & SEC_CODE)
|| ((abfd->flags & WP_TEXT)
&& (subsection->flags & SEC_DATA)))
current_offset = SOM_ALIGN (current_offset, PA_PAGESIZE);