Группа :: Система/Основа
Пакет: prelink
Главная Изменения Спек Патчи Загрузить Bugs and FR
6 марта 2006 Vitaly Lipatov <lav at altlinux.ru> 0.3.6-alt0.M24.3
- backport to ALT Linux M24 (by rpmbph script)
- build shared and static version of prelink (#8856)
- added RPM-macros
- first build for Sisyphus
- remove kernel requires - installed kernel doesn't imply running
kernel anyway and in FC5 kernels older than 2.4.20 can't be used
anyway, as LinuxThreads are no longer included - don't relocate stabs N_{B,D,}SLINE (reported by Ashley Pittman)
- on ppc32 handle -mbss-plt .got sections created with -msecure-plt
capable binutils (#164615)
- support for ppc32 -msecure-plt libraries and binaries
- don't crash if d_tag is invalid (#155605)
- rebuilt against robustified libelf (CAN-2005-1704)
- fix handling of libraries and binaries given on command
line without any / characters in the filename
- fix relocation of .debug_loc (#150194)
- rebuilt with GCC 4
- fix prelink -uo when linked against libselinux (#146637)
and when the -o argument filename is on a different filesystem
than the object that needs undoing
- if layout code needs to re-prelink some library, make sure
all libraries that depend on it are re-prelinked too (#140081) - add several more checks before deciding it is ok to prelink a binary
(even if another bug like #140081 was in, these checks should hopefully
catch it and refuse to (re-)prelink the binary) - added new PRELINK_NONRPM_CHECK_INTERVAL variable to /etc/prelink,
defaulting to 7 days. Prelink nightly job will not do anything
if that interval has not elapsed since last prelinking and
and the rpm database has not been modified since that prelinking.
This is useful if you rely on rpm/up2date/yum/apt-rpm for library
and binary updates. If you combine it with other means (installs
from source, tarballs etc.), you probably want to
set PRELINK_NONRPM_CHECK_INTERVAL=0. - update prelink man page (#126468)
- update PT_PHDR program header if present when adding new program
headers (#133734)
- support for non-absolute blacklist glob patterns (e.g. -b *.la)
- cache information about non-prelinkable files (non-ELF, statically linked,
too small .dynamic, DT_TEXTREL with conflicts against it; #132056) - other speedups for prelink -aq
- for --verify, make sure only read-only fd's are opened for the
unprelinked temporary file, otherwise a kernel might ETXTBUSY on it
(#133317) - change warning message if some object's dependencies can't be found
- add buildrequires libselinux-devel and use %{_tmppath} instead
of /var/tmp in Buildroot (#132879)
- handle overlapping .opd sections on ppc64
- fix warning messages if setting of security context fails
- change sed separator in testsuite scripts from | to , if \|
is present in regexps, as that invokes undefined behaviour
which changed between GNU sed 4.0.9 and 4.1
- skip vDSO in ldd /sbin/init output when determining if /sbin/telinit -u
should be run (#127350)
- rebuilt
- 4 SPARC 64-bit fixes
- use $CC instead of gcc when checking for TLS support in tls*.sh
- add 2 new TLS testcases (one that fails e.g. with glibc < 2.3.3-28
on IA-32) - SPARC TLS support
- fix cxx.c:68: find_cxx_sym: Assertive `n < ndeps' failed problem
on 32-bit architectures (#118522) - build prelink.cache into temporary file and atomically rename over
(#121109)
- unlink temporary files if renaming to the destination or setting of
security context failed (#118251) - fix bi-architecture prelinking (#118226)
- if prelink called from the cron script fails, note the exit status
into /var/log/prelink.log
- add prelink documentation (PDF format)
- fix assertion failures on PPC (.sdynbss related, #115925)
- fix prelink --help (#115202)
- avoid free on uninitialized variable in one error path (#117332)
- s/i386/%{ix86}/ to make mharris happy
- fix prelink abort in certain cases where a new PT_LOAD segment
needs to be added (seen on AMD64)
- clearify message about unlisted dependencies
- don't do SELinux context copying if is_selinux_enabled () < 0
- refuse to prelink objects whose dependencies as reported by
ldd don't include all dependencies transitively (this can
happen when using RPATH and a shared library with the same
SONAME exists both in that RPATH and either another RPATH
or standard library directories) - add testcase for this
- rework .dynsym/.symtab STT_SECTION translation, so that it works
with binutils which put only sections not generated by the linker
into .dynsym for shared libraries - fix make check, so that it is not confused by 2.6.x kernel
VDSOs
- allow R_*_JU?MP_SLOT relocs to point also into .got.plt
sections on IA32/AMD64/ARM/s390/s390x/SH
- set SELinux security context immediately before renaming,
not before
- blacklist support
- use FTW_ACTIONRETVAL if available to avoid even stating of
files in blacklisted directory trees - SELinux support
- added execstack.8 manpage
- changed order of columns in execstack --query output
- added execstack tool
- added -o option, to be used together with -u
- free temp_filename in close_dso
- fix adjustement of DT_VALRNGLO .. DT_VALRNGHI and
DT_ADDRRNGLO .. DT_ADDRRNGHI dynamic tags when relocating shared
libraries - never adjust p_vaddr/p_paddr/p_offset of PT_GNU_STACK segment
- allow shell wildcards in /etc/prelink.conf
- fix REL->RELA conversion of shared libraries if .rel.dyn
or .rel.plt are last sections in readonly PT_LOAD segment - force full reprelinking on prelink upgrades (well, first time
the cron job is run after the upgrade) - require coreutils, findutils, util-linux, gawk and grep
- avoid removing PT_GNU_STACK segment if decreasing first PT_LOAD segment's
p_vaddr on IA-32
- avoid prelink crash if first dependency is to be prelinked because
of address space overlaps
- use /var/lib/misc/prelink.full instead of /var/run/prelink.full for last
full prelink timestamp (#106721) - warn about UPX compressed binaries or libraries/binaries without section
headers (neither can be prelinked obviously)
- don't rely on malloc/calloc/realloc with size 0 returning a unique pointer
- fix testsuite, so that it works even if installed glibc/libstdc++
is already prelinked
- fix comment in /etc/sysconfig/prelink (#106217)
- fix prelink segfault on -z nocombreloc libraries (#103404)
- run one make check round with -Wl,-z,nocombreloc to test handling
of nocombreloc binaries and libraries
- redirect prelink's stderr from the cron job to prelink.log (#102456)
- fix DT_CHECKSUM computation - do STT_LOCAL symbol frobbing and .mdebug
updates write_dso would do also before checksum computation (#89953)
- avoid assertion failures when changing PROGBITS .bss back into
NOBITS .bss (#101813) - add 2 new tests for it
- run prelink from cron automatically, add /etc/sysconfig/prelink
to configure it - update manual page
- fix a thinko in the library path checking code
- change R_386_GLOB_DAT into R_386_32 in .gnu.conflict, similarly
R_X86_64_GLOB_DAT and R_X86_64_64 - fix a bug in find_free_space which caused
"section file offsets not monotonically increasing" errors on some
IA-32 binaries - add --md5 and --sha options
- use mmap during --verify if possible
- add */lib64 directories to prelink.conf
- make sure binaries prelinked for the second and later time without
unprelinking in between verify correctly - make sure DT_CHECKSUM computation is the same for newly prelinked
and second or later time prelinked libraries - dwarf2 abbrev hash bugfix
- don't allow prelinking libraries outside directories specified
in config file or on the command line - several new tests for reprelinking
- pack non-alloced sections and section header table tightly after the
last alloced section
- finish and enable ppc64
- fix ppc BR{,N}TAKEN reloc handling
- fix up sh_offset values of zero-sized or SHT_NOBITS section
if ld messed them up - issue error about bogus library dependency chains instead of
segfaulting (plus testcases for it)
- add --quick mode
- new test for --quick mode and also reprelinking of binary against
upgraded shared library which needs more conflicts
- don't segfault in C++ optimizations if a conflict from undefined
to defined value is seen - some more ppc64 work
- exec-shield support
- with -R, don't randomize just base address from which all libs
are layed out, but also slightly randomize order of libraries
in the layout queue - add check-harder and check-cycle makefile goals in testsuite/,
use it during rpm building
- optimize out conflicts in G++ 3+ virtual tables if they are just
because some method has been called from a binary and thus there
is a .plt slot in the binary. This change not only kills lots of conflicts
on some KDE programs, but also should speed up runtime (not just startup
time), since the hop through .plt is bypassed - added new C++ test
- fix a bug in ppc64 fixup .plt code
- when updating dynamic tags for executable after section reshuffling,
check section type as well, so that 0 sized sections don't get the
tags attached instead of the proper ones - when an address space conflict is found between libraries for the same
executable during layouting, check properly for all remaining conflicts
as well
- don't adjust DT_REL{,A} if it is 0
- allow prelinking of libraries with no dependencies
- fix handling of libraries with no lazy relocs, no normal relocs or no
relocs at all - some new tests
- fix SH (Daniel Jacobowitz)
- fix prelink on AMD64
- 2 new testcases
- fix for debugging prelink_entry_dump/restore
- ppc TLS
- some ppc64 work
- avoid using trampolines for nested functions
- fix typo in prelink man page (#89247)
- fix find_readonly_space bug which caused doxygen not to be prelinked
- fix section indices in .symtab if non-alloced sections weren't
originally monotonically increasing - s390, s390x and Alpha TLS support
- never try to prelink or relocate stripped-to-file debuginfo
- x86-64 TLS support
- added one more tls testcase
- hopefully finished IA-32 TLS support
- require elfutils 0.72 for various data-swapping fixes
- rebuilt against elfutils 0.69 to fix a make check failure on Alpha
- use ELF_F_PERMISSIVE if defined
- be permissive even when doing --reloc-only
- fix up .plt section sh_entsize on Alpha
- some more fixes for elfutils
- make it work with elfutils instead of libelf 0.[78]
- update to newer auto*/libtool
- some more steps towards TLS support, at least --reloc-only should work
- x86-64, s390x and testsuite fixes
- enable on ppc and x86_64
- fix ppc far PLT slot prelink
- support --undo on ppc
- for bug-compatibility with some unnamed OS changed R_SPARC_RELATIVE
--undo - tiny steps towards TLS support on IA-32, more will come
- avoid putting garbage into executable's .gnu.liblist sh_link
if we did not have to grow .dynstr - don't segfault on bogus sh_link and sh_info values (#72705)
- when growing allocated shared lib sections (for REL->RELA
conversion), make sure !PF_W and PF_W segments don't end up
on the same page - when finding space for sections in an executable, make sure
it is not included in between two reloc sections - for non-zero SHN_ABS symbols on 32-bit arches mask high
32-bits of st_value (libelf 0.8.x is strict here)
- make it work with libelf 0.8.2
- automated rebuild
- add /etc/rpm/macros.prelink
- added --undo and --verify mode
- new architectures s390, s390x, arm, sh
- handle binaries/shared libraries with non-allocated sections
without monotonically increasing sh_offsets - handle .sbss and .sdynbss
- fixed a bug in 64-bit LE/BE read routines
- removed .rel{,a}.dyn reloc conversion/sorting, it was duplicating
ld's -z combreloc and complicated lots of things - fixed STB_LOCAL/STT_SECTION symbol adjusting
- use mkstemp for temporary files, allow --verify for binaries/libs
on read-only filesystems - added DWARF-2 .debug_ranges adjustement, special case GCC's
"set base to 0 and make things absolute instead of relative" trick - allow arches to override default layout mechanism (for ppc)
- added some new tests, test --undo and --verify modes in the testsuite
- alpha: adjust what R_ALPHA_GLOB_DAT points to too
- i386: apply _32 and _PC32 REL relocs, as apply_rel can be called
for C++ optimizations before REL->RELA conversion - ppc: layout strategy to satisfy ppc lib location preferences
- sparc64: handle R_SPARC_DISP64
- x86-64: adjust what R_X86_64_RELATIVE points to too
- link prelink statically, esp. because of --verify mode
- run make check during build process
- fix layout code so that -R works
- on IA-32, when there are no R_386_PC32 relocs and no R_386_32 relocs
with non-zero addend (= memory content), don't convert REL->RELA,
only switch R_386_32 relocs to R_386_GLOB_DAT - support creating a new PT_LOAD segment if necessary, if SHT_NOBITS
sections are small, instead of adding new PT_LOAD segment just add file
backing to those NOBITS sections - added testsuite
- new supported architectures (Alpha including .mdebug section support,
Sparc, Sparc 64-bit, X86_64 (the last one untested)), beginning of PPC
support
- make sure lib base is always ELF page size aligned
- fix sorting of .rel*.dyn sections, so that all RELATIVE relocs really
come first - when DT_RELCOUNT already exists and conversion REL->RELA is done,
convert it into DT_RELACOUNT - set conflict lookupent and conflictent to 0 for undefineds
- don't bother with DT_REL*COUNT for apps, they cannot have any RELATIVE
relocs
- brown paper bag time: when determining if conversion from REL to RELA
is needed, check all non-PLT rel sections, including last.
This caused prelinking to fail with -z combreloc compiled libraries.
- don't use .gnu.reloc section, use .rel.dyn or .rela.dyn instead
- put RELATIVE relocs first, not last, so that DT_REL{,A}COUNT
works - put in updated glibc patch
- no need for special binutils patch - all is done in the -z combreloc
patchset
- use the new DT_GNU_CONFLICT/DT_GNU_LIBLIST/SHT_GNU_LIBLIST constants
- unlink *.#prelink# files if necessary
- fix layout.c
- create .gnu.prelink_undo section, --undo and --verify modes will use that
- some more C++ specific optimizations
- bail out early if ELF object does not have sh_offsets
monotonically increasing - disallow prelinking if there are conflicts against read-only
segments in shared libraries (ie. non-pic shared libraries - this is better than bailing out for all non-pic shared libraries)
- add some C++ specific optimizations to reduce number of conflicts,
more to come
- fix incremental prelinking
- relocate stabs and dwarf-2 debugging formats
- support both --all and incremental prelinking
- handle hardlinks
- limit to libraries in /etc/prelink.conf directories or
directories from command line
- new package