Patch-ID# 103627-15 Keywords: security dlsym symbol ld.so.1 ld libld.so.2 SHF_EXCLUDE ar ufs Synopsis: SunOS 5.5.1: Linker patch Date: Oct/31/2000 Solaris Release: 2.5.1 SunOS Release: 5.5.1 Unbundled Product: Unbundled Release: Xref: This patch available for x86 as patch 103628 Topic: SunOS 5.5.1: Linker patch NOTE: Refer to Special Install Instructions section for IMPORTANT specific information on this patch. Relevant Architectures: sparc 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 4215164 4215587 4225937 4234657 4235241 4238973 4254246 4292238 4295613 4351197 Changes incorporated in this version: 4351197 Patches accumulated and obsoleted by this patch: 103606-02 105069-01 Patches which conflict with this patch: NOTE: iss_sparc-01 (or newer) Patches required with this patch: 103640-27 or greater Obsoleted by: Files included with this patch: (deleted (deleted (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 /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 /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 /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 103627-14) 4292238 linking a library which has a static char ptr invokes mprotect() call 4295613 COMMON symbol resolution can be incorrect (from 103627-13) 4254246 Linker patch 103627-08 and above is broken, have to backout to rev -05 (from 103627-12) 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 103627-11) 4215587 using ld and the -r option on solaris 7 with compiler option -xarch=v9 causes 4234657 103627-08 breaks purify 4.2 (plt padding should not be enabled for 32-bit) 4235241 dbx no longer gets dlclose notification. 4215164 shf_order flag handling broken by fix for 4194028 4225937 i386 linker emits sparc specific warning messages (from 103627-10) 4214980 2.5.1 linker patch 103627 causes a threaded app to hangs on a __lwp_sema_wait (from 103627-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 103627-08) 4159122 UNIX98: dlclose() to invalid handle may dump core (from 103627-07) 4176579 problem loading dynamically linked libraries with setuid root 4176796 The Intel version of visu crashes before main (from 103627-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 103627-05) 4150646 Security bug 1241843 resurfaces in 2.7 + 2.6 and 5.5.1 + patch 4149227 103612-41 causes ldd to throw out unresolved references in libdl.so.1 (from 103627-04) 4112585 mcs -p fails on read-only binaries (from 103627-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 during 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 during 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 103627-02) 4068108 dlerror() messages printed to stderr during link-auditing 4062757 link auditing breaks apps using libdl (from 103627-01) 1247793 dlsym() can''t find symbol (from 103606-02) 1244333 The SHF_EXCLUDE flag defined in ppc ABI should be implemented and for all ISA''s (from 103606-01) 1056449 ld should handle an empty archive without aborting with an error (from 105069-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 (103612-41 causes ldd to throw out unresolved references in libdl.so.1), ONE ALSO NEEDS TO INSTALL THE FOLLOWING PATCHES: 103663-14 (or newer) libresolv patch 103640-23 (or newer) libthread/KU patch 105732-02 (or newer) libxfn patch 103612-44 (or newer) libc/libnsl patch