diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2010-05-26 14:10:15 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2010-05-26 14:10:15 +0000 |
commit | c8ce57109cba194742fc1d0b6f953cf535571750 (patch) | |
tree | dd34e730e8b738fdbdeb12530886b8185358a2a3 /ld | |
parent | f79e2745b210313ede58d9509e718f0e2506e045 (diff) | |
download | gdb-c8ce57109cba194742fc1d0b6f953cf535571750.zip gdb-c8ce57109cba194742fc1d0b6f953cf535571750.tar.gz gdb-c8ce57109cba194742fc1d0b6f953cf535571750.tar.bz2 |
Warn if value of SEGMENT_START isn't multiple of maximum page size.
ld/
2010-05-26 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11628
* ldexp.c (fold_binary): Warn if value of SEGMENT_START isn't
multiple of maximum page size.
ld/testsuite/
2010-05-26 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11628
* ld-elf/textaddr3.d: New.
* ld-elf/textaddr4.d: Likewise.
* ld-elf/textaddr5.d: Likewise.
* ld-elf/textaddr6.d: Likewise.
* ld-elf/textaddr7.d: Likewise.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/ldexp.c | 5 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/textaddr3.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/textaddr4.d | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/textaddr5.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/textaddr6.d | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/textaddr7.d | 8 |
8 files changed, 52 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index ffa59e7..d6324e0 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2010-05-26 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/11628 + * ldexp.c (fold_binary): Warn if value of SEGMENT_START isn't + multiple of maximum page size. + 2010-05-25 Nick Clifton <nickc@redhat.com> * Makefile.am: Fix typo. @@ -299,6 +299,11 @@ fold_binary (etree_type *tree) for (seg = segments; seg; seg = seg->next) if (strcmp (seg->name, segment_name) == 0) { + if (!seg->used + && config.magic_demand_paged + && (seg->value % config.maxpagesize) != 0) + einfo (_("%P: warning: address of `%s' isn't multiple of maximum page size\n"), + segment_name); seg->used = TRUE; expld.result.value = seg->value; expld.result.str = NULL; diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 4a3989e..a59ad4a 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2010-05-26 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/11628 + * ld-elf/textaddr3.d: New. + * ld-elf/textaddr4.d: Likewise. + * ld-elf/textaddr5.d: Likewise. + * ld-elf/textaddr6.d: Likewise. + * ld-elf/textaddr7.d: Likewise. + 2010-05-25 Daniel Jacobowitz <dan@codesourcery.com> Joseph Myers <joseph@codesourcery.com> Andrew Stubbs <ams@codesourcery.com> diff --git a/ld/testsuite/ld-elf/textaddr3.d b/ld/testsuite/ld-elf/textaddr3.d new file mode 100644 index 0000000..d533e24 --- /dev/null +++ b/ld/testsuite/ld-elf/textaddr3.d @@ -0,0 +1,4 @@ +#source: maxpage1.s +#ld: -Ttext-segment 0x10000 -z max-page-size=0x200000 +#target: *-*-linux-gnu +#warning: .*address of `text-segment' isn't multiple of maximum page size diff --git a/ld/testsuite/ld-elf/textaddr4.d b/ld/testsuite/ld-elf/textaddr4.d new file mode 100644 index 0000000..bfd7630 --- /dev/null +++ b/ld/testsuite/ld-elf/textaddr4.d @@ -0,0 +1,8 @@ +#source: maxpage1.s +#ld: -z max-page-size=0x10000 -Ttext-segment 0x10000 +#readelf: -l --wide +#target: *-*-linux-gnu + +#... + LOAD +0x0+ 0x0*10000 0x0*10000 0x0*[0-9a-f][0-9a-f][0-9a-f] 0x0*[0-9a-f][0-9a-f][0-9a-f] R E 0x10000 +#pass diff --git a/ld/testsuite/ld-elf/textaddr5.d b/ld/testsuite/ld-elf/textaddr5.d new file mode 100644 index 0000000..5fe41d0 --- /dev/null +++ b/ld/testsuite/ld-elf/textaddr5.d @@ -0,0 +1,4 @@ +#source: maxpage1.s +#ld: -shared -z max-page-size=0x200000 -Ttext-segment 0x10000 +#target: *-*-linux-gnu +#warning: .*address of `text-segment' isn't multiple of maximum page size diff --git a/ld/testsuite/ld-elf/textaddr6.d b/ld/testsuite/ld-elf/textaddr6.d new file mode 100644 index 0000000..b3b9f84 --- /dev/null +++ b/ld/testsuite/ld-elf/textaddr6.d @@ -0,0 +1,8 @@ +#source: maxpage1.s +#ld: -shared -z max-page-size=0x10000 -Ttext-segment 0x10000 +#readelf: -l --wide +#target: *-*-linux-gnu + +#... + LOAD +0x0+ 0x0*10000 0x0*10000 0x0*[0-9a-f][0-9a-f][0-9a-f] 0x0*[0-9a-f][0-9a-f][0-9a-f] R E 0x10000 +#pass diff --git a/ld/testsuite/ld-elf/textaddr7.d b/ld/testsuite/ld-elf/textaddr7.d new file mode 100644 index 0000000..54a571f --- /dev/null +++ b/ld/testsuite/ld-elf/textaddr7.d @@ -0,0 +1,8 @@ +#source: maxpage1.s +#ld: -n -z max-page-size=0x200000 -Ttext-segment 0x10000 +#readelf: -l --wide +#target: *-*-linux-gnu + +#... + LOAD .* +#pass |