Patch-ID# 103628-14 Keywords: security dlsym symbol ld.so.1 libld.so.2 archive SHF_EXCLUDE ar ufs Synopsis: SunOS 5.5.1_x86: Linker patch Date: Oct/31/2000 Solaris Release: 2.5.1_x86 SunOS Release: 5.5.1_x86 Unbundled Product: Unbundled Release: Xref: This patch available for SPARC as patch 103627 Topic: SunOS 5.5.1_x86: Linker patch NOTE: Refer to Special Install Instructions section for IMPORTANT specific information on this patch. Relevant Architectures: i386 BugId's fixed with this patch: 1046594 1056449 1182346 1244333 1247793 4008477 4044285 4050759 4052067 4058928 4062757 4064724 4066815 4067926 4068108 4069849 4074398 4075643 4079003 4079633 4081897 4084466 4085036 4085734 4088306 4092335 4092511 4092633 4093064 4095586 4096079 4096995 4097806 4099108 4099127 4099713 4100002 4102130 4102797 4104963 4105877 4106398 4107294 4107525 4108699 4108808 4110994 4112585 4114006 4116970 4118404 4121152 4121546 4122351 4124773 4126137 4127674 4128742 4128755 4129745 4134302 4134367 4135749 4141174 4143820 4145987 4149227 4150646 4153501 4156854 4158744 4159122 4160709 4161775 4165899 4168556 4173576 4174468 4176579 4176796 4179880 4188527 4188843 4205087 4214980 4238973 4254246 4292238 4295613 4351197 Changes incorporated in this version: 4351197 Patches accumulated and obsoleted by this patch: 103607-02 105070-01 Patches which conflict with this patch: NOTE: iss_x86-01 (or newer) Patches required with this patch: 103641-27 or greater Obsoleted by: Files included with this patch: (deleted /etc/lib/ld.so.1 /etc/lib/libdl.so.1 /usr/bin/ldd /usr/bin/pvs /usr/bin/sotruss /usr/bin/whocalls /usr/ccs/bin/ar /usr/ccs/bin/dump /usr/ccs/bin/elfdump /usr/ccs/bin/gprof /usr/ccs/bin/ld /usr/ccs/bin/lorder /usr/ccs/bin/mcs /usr/ccs/bin/nm /usr/ccs/bin/size /usr/ccs/bin/strip /usr/ccs/lib/ldprof.so.1 /usr/ccs/lib/libld.so.2 /usr/ccs/lib/liblddbg.so.3 (deleted /usr/ccs/lib/link_audit/ldprof.so.1 /usr/ccs/lib/link_audit/truss.so.1 /usr/ccs/lib/link_audit/who.so.1 /usr/include/dlfcn.h /usr/include/gelf.h /usr/include/libelf.h /usr/include/link.h /usr/include/proc_service.h /usr/include/rtld_db.h /usr/include/sys/elf.h /usr/include/sys/elf_386.h /usr/include/sys/elf_M32.h /usr/include/sys/elf_SPARC.h /usr/include/sys/elf_notes.h /usr/include/sys/elf_ppc.h /usr/include/sys/elftypes.h /usr/include/sys/link.h /usr/include/sys/machelf.h /usr/lib/0@0.so.1 /usr/lib/ld.so.1 /usr/lib/lddstub /usr/lib/libdl.so /usr/lib/libdl.so.1 /usr/lib/libelf.a /usr/lib/libelf.so /usr/lib/libelf.so.1 /usr/lib/libld.so.2 /usr/lib/liblddbg.so.3 (deleted /usr/lib/liblddbg.so.4 /usr/lib/libldfeature.a /usr/lib/libldstab.so.1 /usr/lib/librtld.so.1 /usr/lib/librtld_db.so /usr/lib/librtld_db.so.1 /usr/lib/link_audit/ldprof.so.1 /usr/lib/link_audit/truss.so.1 /usr/lib/link_audit/who.so.1 /usr/lib/llib-lelf.ln /usr/xpg4/bin/ar /usr/xpg4/bin/nm file) file) file) Problem Description: 4351197 nfs performance problem by 103627-13 (from 103628-13) 4292238 linking a library which has a static char ptr invokes mprotect() call 4295613 COMMON symbol resolution can be incorrect (from 103628-12) 4254246 Linker patch 103627-08 and above is broken, have to backout to rev -05 (from 103628-11) 4238973 fix for 4121152 affects linking of Ada objects 4158744 patch 103627-02 causes core when RPATH has blank entry and dlopen /dlclose is us (from 103628-10) 4214980 2.5.1 linker patch 103627 causes a threaded app to hangs on a __lwp_sema_wait (from 103628-09) 4173576 Segmentation Fault on register-symbol declaration building a.out 4174468 scratch register symbol has multiple entries in .dynamic for same register 4179880 DT_RELASZ in .dynamic incorrectly calculated when .rela for reg-sym present 4188527 lorder output incorrect for v9 objects with global register ELF records 4188843 nm -p produces key letter of 13 for global register records 4205087 linker patch 103627-08 breaks viewpathing (from 103628-08) 4159122 UNIX98: dlclose() to invalid handle may dump core (from 103628-07) 4176579 problem loading dynamically linked libraries with setuid root 4176796 The Intel version of visu crashes before main (from 103628-06) 4107294 contents of /usr/ccs/lib should be moved to /usr/lib and symlink created 4106398 size of .bss section is truncated 4110994 patch 103627-02 and 105490-02 breaks implicit arch dependence result from libs 4092633 rtld_db only returns link-map lists for ld.so.1 & base 4116970 gelf.h fails to compile under C++ 4114006 dlopen() and symbol addressing failures 4118404 link_audit: pltglue applied on functions which don''t need it. 1046594 RFE: allow multiple initializations of a COMMON block 4122351 need 64-bit port of rdb_demo 4121546 rtld_db: displaying 32bit link_maps from 64bit process is broken 4124773 ld has 2GB file size limit 4069849 mcs: multiple -a xxx with null .comment section is ignored 4105877 patch 103627-02 causes sources to core dump 4126137 EF_SPARC_SUN_US3 flag added to v9 ABI 4127674 dlopen() doesn''t always use the correct link map 4129745 fix WDISP30 relocations won''t reach errors on sparcv9 4099108 dladdr returns argv[0] in dli_fname 4121152 linker does not complain about type mismatches 4128742 register symbols are not implemented for sparc 4135749 gelf_getehdr segmentation faults 4141174 elf utilities are not consistent printing 64-bit fields 4143820 change to v9 ABI spec for PCPLT10 relocation 4145987 32-bit nlist(3E) on 64-bit object leaks fd''s 4134302 dlopen/dlclose leaks memory 4134367 libthread panic: alloc_chunk due to too many open files 4128755 doreloc() is truncating relocation error messages... 4153501 patch 103627-02 causes ksh to core dump 4156854 Symbol yp_get_default_domain not found by the gethostent() function 4160709 dlopen() fails on library (libxil) built with -lthread 4161775 nm dumps core on ELF with no symbol table. 4159122 UNIX98: dlclose() to invalid handle may dump core 4165899 ld execs 64-bit ld when linking Elf32, can break apps using procfs. 4168556 elfdump truncates 64-bit symbol values (from 103628-05) 4149227 103612-41 causes ldd to throw out unresolved references in libdl.so.1 4150646 Security bug 1241843 resurfaces in 2.7 + 2.6 and 5.5.1 + patch (from 103628-04) 4112585 mcs -p fails on read-only binaries (from 103628-03) 4008477 Change where executable finds its libraries without re-linking 4050759 /usr/ccs/bin/dump -sv or -r hit SIGBUS on -dn stripped binaries 4044285 Combining relocation sections yields performance gain 4058928 segment reservations made too soon 4066815 GOT table on x86 has empty fields 4068108 dlerror() messages printed to stderr durring link-auditing 4064724 linking against a EM_SPARC32PLUS dynamic library results in a EM_SPARC32PLUS obj 1182346 utilities need to use cplus_demangle from latest version of libC.so 4074398 2.4 app takes up 8X more space under 2.5.1 4079633 typo in new "gelf.h" wyoming header file 4085734 ld: V9 default load address is different to V8 4079003 Multiplication fails intermittently with libthread linked against program 4081897 Stripping shared object makes an illegal binary that crashes ld 4084466 elf32_newehdr() hangs in programs linked with libthread. 4075643 -zallextract can corrupt relocation section placement 4085036 Need lazy loading with Solaris 4092335 chkmesg not able to find xlate.c durring build of libelf 4093064 elfdump coredumps inside of syminfo processing 4096079 ABI requires HIX22 and LOX10 reloc types (Hal additions) 4096995 gelf needs to be made MT-safe 4067926 strip breaks hard links 4097806 runtime linker references a unmapped address causing libthread panic 4099713 stripping and scoping create invalid init/fini dynamic tags. 4088306 introduce new section SHT_COMDAT 4102797 elftypes.h uses new 2.7 inttypes data structures 4095586 need LD_PROFILE for 64-bit libraries 4100002 /usr/ccs/bin/dump gives different results on 2.7 compared with 2.6 4099127 dlopen failure in link auditing context can be hazardous to your health 4104963 Either EM_NUM or EM_SPARCV9 needs to change 4102130 linker need dependency search continuation 4092511 object size silently truncated to 32 bits 4107525 Locking in eprint() is incorrect; causes hangs on MT applications on 2.6 4108699 lazy loading can cause .init sections to fire off to soon. 4108808 text segment re-mapped read-write when not required (from 103628-02) 4068108 dlerror() messages printed to stderr durring link-auditing 4062757 link auditing breaks apps using libdl (from 103628-01) 1247793 dlsym() can''t find symbol (from 103607-02) 1244333 The SHF_EXCLUDE flag defined in ppc ABI should be implemented and for all ISA''s (from 103607-01) 1056449 ld should handle an empty archive without aborting with an error (from 105070-01) 4052067 ar can''t have identical archive and file names Patch Installation Instructions: -------------------------------- Refer to the Install.info file within the patch for instructions on using the generic ''installpatch'' and ''backoutpatch'' scripts provided with each patch. Any other special or non-generic installation instructions should be described below. Special Install Instructions: ----------------------------- NOTE 1: TO GET THE COMPLETE FIX FOR BUGID FOR 4149227 (Synopsis: 103612-41 causes ldd to throw out unresolved references in libdl.so.1), ONE ALSO NEEDS TO INSTALL THE FOLLOWING PATCHES: 103664-14 (or newer) libresolv patch 103641-23 (or newer) libthread/KU patch 105733-02 (or newer) libxfn patch 103613-44 (or newer) libc/libnsl patch