prelink-cross project sync update
(I'm going to try to send out these quick blurbs as prelink-cross is synced to the upstream. Upstream changes are fairly infrequent, so this will be a low volume set of emails. Most emails in the future will be shorted then this one.)
prelink-cross has been synced up to the latest upstream prelink changes.
The latest changes include:
2011-10-12 Jakub Jelinek <[email protected]>
* src/main.c (layout_page_size): New variable. (OPT_LAYOUT_PAGE_SIZE): Define.
(options): Add --layout-page-size option. (set_default_layout_page_size): New function in i?86/x86_64 resp. empty macro on other architectures.
(main): Call it.
* src/arch-i386.c (i386_layout_libs_init): Fail if l->max_page_size is larger than 2MB and exec_shield is true. Compute reg0s as REG0S rounded up to l->max_page_size boundary and use it instead of REG0S. (i386_layout_libs_pre): Compute reg0s as REG0S rounded up to l->max_page_size boundary and use it instead of REG0S. Fix up a pasto in computation of virt parameter for third i386_find_free_addr call.
* src/prelink.h (layout_page_size): New decl.
* src/layout.c (layout_libs): Set max_page_size and l.max_page_size to maximum of plarch->max_page_size and layout_page_size. Fail if mmap_base or mmap_end aren't max_page_size aligned.
* src/arch-ppc.c (ppc_layout_libs_pre): Give up if l->max_page_size is larger than 64KB.
In essence what this does is adds a new option "--layout-page-size" that allows someone to override the "max_page_size" value when necessary. (It's not a true override as the max_page_size is set to either the existing value or layout-page-size whichever is larger.)
The upstream change also added dynamic run-time detection for the AMD Bulldozer platform, setting the default to 32k. Since run-time detection is contrary to the existing prelink-cross usage, the code has been disabled.
As usual, the upstream version is in the "master" branch, and the cross version is in the "cross_prelink" branch.
--Mark