OSDN Git Service

mkostemp: fix implementation
[uclinux-h8/uClibc.git] / ldso / README
1
2 Apr 20, 2001 -- Manuel Novoa III
3
4 Inital port for uClibc from debian ld.so_1.9.11-9.tar.gz.
5
6 Removed a.out support.
7
8 ****************** original ld.so.lsm file **************************
9 Begin3
10 Title:          Linux shared, dynamic linker and utilities.
11 Version:        1.9.11
12 Entered-date:   01MAY99
13 Description:    This package contains ld.so, ld-linux.so, ldconfig,
14                 ldd and libdl.
15 Keywords:       dynamic linker, shared library, ld.so, ld-linux.so,
16                 ldconfig, ldd, libdl
17 Author:         david@ods.com (David Engel)
18 Maintained-by:  david@ods.com (David Engel)
19 Primary-site:   tsx-11.mit.edu /pub/linux/packages/GCC
20                 ld.so-1.9.11.tar.gz
21 Alternate-site: sunsite.unc.edu /pub/Linux/GCC
22                 ld.so-1.9.11.tar.gz
23 Platform:       Linux 2.0.0 or later.
24 Copying-policy: Copyrighted but freely distributable.
25 End
26 *********************************************************************
27                    Original README starts here
28 *********************************************************************
29
30 This package contains my ELF dynamic linkers (ld-linux.so.1), dynamic
31 linker library (libdl.so.1) and utilities (ldconfig and ldd) for Linux.
32
33 You need Linux kernel 2.0.0 or later with ELF support compiled in
34 (i.e. not loaded as a module) to use this package.
35
36 The dynamic linker is used to bootstrap programs and load shared
37 libraries at startup.  The dynamic linker library is used to
38 dynamically load shared libraries after a program is running.
39 Ldconfig is used to automatically update the symbolic links to shared
40 libraries and build the cache file used by the dynamic linker.  Ldd is
41 used to list the shared libraries used by a program.
42
43 Please see the included manual pages for further details.
44
45 To install, simply run "sh instldso.sh" as root.  Ready-to-go versions
46 of all end-products are provided so nothing should need to be compiled
47 or linked.  If you are still using libc5 as your primary development
48 library, you should use the "--devfiles" option when running
49 instldso.sh to install the file needed to compile with libdl.
50
51 ELF versions of gcc, binutils and libc are now required to compile
52 everything, including the old, unsupported, a.out dynamic linker.
53 Finally, an optimization level of O2 or higher must be used to compile
54 ld-linux.so and libdl.so due the use of inline functions.
55
56 Notable contributors to this package include Eric Youngdale, Peter
57 MacDonald, Hongjiu Lu, Linus Torvalds, Lars Wirzenius, Mitch D'Souza,
58 Rik Faith, Andreas Schwab and Adam Richter (not necessarily in that
59 order).
60
61 ###################### IMPORTANT NOTICES #############################
62
63 A.OUT SUPPORT:
64
65 As of ld.so-1.9.0, the old, a.out dynamic loader is no longer 
66 officially supported.  The code is still included and built, but I 
67 make no promises that it will work.  I will accept patches for it, 
68 but they will not be tested by me.
69
70 GLIBC (AKA LIBC6) SUPPORT:
71
72 As of ld.so-1.9.0, the main focus of this package is to ease the
73 transition to libc6.  No significant, new features are expected to be
74 added.  If you need new features, switch to libc6.
75
76 Except for libpthread.so, the sonames of the core libraries provided
77 with libc6 have been chosen so they do not conflict with those
78 provided by libc5 and ld.so.  However, the current plan is not use
79 new, nonconflicting sonames for other libraries such as ncurses and
80 X11.  This presents two problems.  First, libraries using the same
81 soname for both libc5 and libc6 can not be placed in the same
82 directory.  Second, the dynamic linkers need to make sure not to load
83 a library for the wrong version of libc.
84
85 The first problem is easy.  Just move the old, libc5-based libraries
86 to new directories (e.g. /lib/libc5-compat, /usr/lib/libc5-compat,
87 etc.) and add those directories to /etc/ld.so.conf.  Then install the
88 new, libc6-based versions in the standard places.
89
90 The second problem is more difficult.  Ideally, the dynamic linkers
91 would be changed to perform a complete dependency analysis on every
92 library to be loaded to make sure the wrong versions aren't used.
93 This approach doesn't seem worth the added complexity, especially
94 since we now have symbol versioning for ELF libraries.  Instead a
95 simpler approach will be used, at least initially.
96
97 Ldconfig has been modified to perform a (currently simple) dependency
98 analysis on libraries and to store an indication in /etc/ld.so.cache
99 of whether a library is for libc5, libc6 or an unknown libc.  The
100 dynamic linkers then only need to make a simple check at run-time to
101 make sure they don't load the wrong version of a library.
102
103 The dynamic linker for libc5 provided in this package, has already
104 been modified to use the new information in /etc/ld.so.cache.  For
105 glibc versions 2.0.1 and earlier, the dynamic linker for libc6 needs
106 the patch contained in glibc.patch.  You should apply the patch and
107 rebuild glibc before using the new ldconfig.
108
109 As stated above, the dependency analysis currently done by ldconfig is
110 rather simple.  Basically, it looks for the sonames used by the
111 various versions of libc, libm and libdl.  For any approach using a
112 dependency analysis such as this to work, it is very important that
113 shared libraries be built with complete dependency information.  This
114 can be done by using the appropriate -l options when running 'gcc
115 -shared'.  For example, when building libfoo.so which depends on libc
116 and libbar, you should add -lbar and -lc gcc command line.
117
118 ######################################################################
119
120 Changes in version 1.9.11:
121
122         Fixed a bug in ld-linux.so where a reference to an
123         undefined symbol could cause a segfault.
124
125         Added a clarification for LD_PRELOAD to the ld.so manual 
126         page and added a symlink for ld-linux.so (Bug#33123).
127
128         Don't install ldd for Debian except for the m68k arch
129         because glibc 2.1 now includes it (Bug#35458).
130
131 Changes in version 1.9.10:
132
133         Changed ldconfig to issue a warning and not overwrite a
134         regular file with a symlink (Bug#30859).
135
136         Changed Debian packaging to conflict with and replace the
137         ldconfig package (Bug#29398).
138
139 Changes in version 1.9.9:
140
141         Changed ld-linux.so and libdl.so to match glibc by not
142         allowing user preloads of system libraries into setu/gid
143         binaries unless the library itself is setuid.
144
145         Fixed problems in ld-linux.so on the sparc architecture
146         (Juan Cespedes).
147
148 Changes in version 1.9.8:
149
150         Changed ldconfig to allow the expected type for all
151         libraries in a directory to be optionally specified
152         (Mark Phillips).  See the ldconfig man page.
153
154         Changed ldconfig to use the same type names used in the
155         change above when the -p option is used.
156
157 Changes in version 1.9.7:
158
159         Changed ldd for m68k to use /lib/ld.so.1 instead of 
160         /lib/ld-linux.so.2.
161
162         Added support for dladdr to libdl.so (Eduard Gode).
163
164         Fixed a small memory leak in libdl.so (Richard Garnish).
165
166         Fixed a bug in ldconfig when the -l option was used on a
167         filename without a '/' in it.
168
169         Updated the man pages (Bug#6404, Bug#9721, Bug#10652, 
170         Bug#13494 and Bug#14127).  They could still use some work.
171
172         No longer install the info page since it's way out of date.
173
174         Fixed minor Debian packaging problems (Bug#13160, 
175         Bug#15577 and Bug#19345).
176
177 Changes in version 1.9.6:
178
179         Changed ldd to not use the glibc dynamic linker when run
180         on a libc5-based shared library.
181
182         Added a -q option to ldconfig which causes warnings not
183         to be printed (Bob Tinsley).
184
185         Dropped support for the Debian libdl1-dev package.
186
187         Changed ld-linux.so to be compilable with gcc 2.8.0 (Sven 
188         Verdoolaege)
189
190 Changes in version 1.9.5:
191
192         Fixed a bug in ldd where ld-linux.so.2 was not called
193         correctly when run on shared libraries.
194
195         Fixed a problem in the previous version where some
196         Makefiles were not architecture independent.
197
198 Changes in version 1.9.4:
199
200         Fixed a bug in ld.so introduced in the previous version
201         which broke preloads.
202
203         Turned a.out support back on by default, at least for the
204         time being.  There are no promises to keep it.
205
206 Changes in version 1.9.3:
207
208         Fixed buffer overflow bugs in ld-linux.so and ld.so.
209
210         Changed the README file a little to clarify a couple of
211         things.
212
213         Changed ldconfig to chroot to the specified directory when
214         the new -r option is used (Bob Tinsley).
215
216 Changes in version 1.9.2:
217
218         Removed /usr/local/lib from the default /etc/ld.so.conf
219         for Debian (Bug#8181).
220
221         Changed ldconfig to be 64-bit clean (H.J. Lu).
222
223 Changes in version 1.9.1:
224
225         Changed ldconfig to try to determine which libc a
226         library is for even if it doesn't have an soname.
227
228         Fixed a bug in ldconfig where an older library using
229         the glibc naming convention would be used instead of
230         a newer library.
231
232         Changed to ld-linux.so and libdl.so to not require the 
233         libc5 headers in order to compile.
234
235         Changed ldconfig and ldd to be compilable with either
236         libc5 or libc6.
237
238 Changes in version 1.9.0:
239
240         Changed to not build the old, a.out dynamic loader by
241         default.
242
243         Changed instldso.sh to require the --force option to
244         make sure users read the README file.
245
246         Changed instldso.sh to not install the libdl.so
247         development files unless the --devfiles option is used.
248
249         Changed instldso.sh to not strip binaries and libraries
250         if the --no-strip option is used.
251
252         Changed the Debian packaging to put the development files 
253         which conflict with glibc in a new libdl1-dev package.
254
255         Changed ldd to use the glibc dynamic linker, if it is
256         available, when run on a shared library.
257
258         Changed ld-linux.so to print the load addresses of
259         libraries, ala glibc, when run by ldd.
260
261         Changed ld-linux.so to allow the libraries listed in 
262         LD_PRELOAD to be separated by white space in addition to 
263         colons.
264
265         Changed ld-linux.so to load the libraries listed in 
266         LD_PRELOAD for setu/gid programs as long as they can be 
267         loaded securely.
268
269         Changed ldconfig to update the symlinks for the dynamic
270         linkers.
271
272         Changed ldconfig to try to determine if an ELF library is
273         intended for libc5 or libc6 and save the infomation in the
274         cache.  The mechanism used is rather simplistic and may
275         need to be enhanced.
276
277         Changed ldconfig to print the type of ELF library when
278         printing the cache.
279
280         Changed ld-linux.so to only load ELF shared libraries for
281         use with libc5 or an unknown libc.
282
283 Changes in version 1.8.10:
284
285         Fixed a bug in ldconfig where a symlink could be used
286         instead of a regular file.
287
288         Fixed a Debian packaging problem for the sparc 
289         architecture.
290
291 Changes in version 1.8.9:
292
293         Changed ldconfig to only cache the symlinks it creates.
294         This make the behavior of the dynamic linkers consistent
295         with how they would behave if a cache was not used.
296
297         Changed ldconfig to cache the symlinks that it finds but
298         use the name of the symlink as the soname instead of the 
299         actual soname.
300
301 Changes in version 1.8.8:
302
303         Minor documentation updates to reflect recent changes.
304
305         Changed ld.so and ld-linux.so to perform more complete
306         validation on ld.so.cache before using it.
307
308         Changed ldconfig to accept libraries with inconsistent
309         sonames since glibc is going to use them.  A warning is
310         still printed in debug mode.
311
312         Changed the install script to not strip _dl_debug_state
313         from ld-linux.so since gdb needs it.
314
315         More sparc fixes (Derrick Brashear).
316
317         Changed ldconfig to not issue a warning when a linker
318         script disguised as a shared library is found.
319
320         Fixed a bug in ld-linux.so where some registers were 
321         not preserved on the first call to a function causing 
322         problems for non-C-like languages (Tim Renouf).
323
324         Fixed a bug in ld-linux.so where global variables were 
325         not always mapped correctly across dynamically loaded 
326         libraries (Mikihiko Nakao).
327
328         Converted to new Debian source packaging format (Shaya
329         Potter).
330
331 Changes in version 1.8.6/7:
332
333         Never released as some unofficial patches used these
334         version numbers.
335
336 Changes in version 1.8.5:
337
338         Fixed a bug in ld.so introduced in the previous changes.
339
340 Changes in version 1.8.4:
341
342         Changed ldconfig to completely ignore symbolic links.
343
344         Changed ldconfig to issue the warning concerning an
345         inconsistent soname in non-verbose mode.
346
347         Changed ld-linux.so back to not keep ld.so.cache mapped
348         at all times.
349
350         Changed Debian packaging to compress man pages, strip all
351         binaries (Bug#5125) and include a shlibs file.
352
353 Changes in version 1.8.3:
354
355         Changed ld-linux.so to process LD_PRELOAD before
356         /etc/ld.so.preload.
357
358         Fixed a Debian packaging problem where libdl might not
359         be available if other packages were upgraded at the same
360         time (Debian Bug#4728).
361
362         Changed ldd to always exit with status 1 if any errors
363         occur (Debian Bug#4188).
364
365         Fixed some minor problems in instldso.sh (Mike Castle and
366         Wolfgang Franke).
367
368         Changed ldconfig to issue a warning in verbose mode when 
369         skipping a library because the soname doesn't match.
370
371         More sparc fixes (Miguel de Icaza).
372
373         Don't link with -N when building ld.so (Alan Modra).
374
375         Changed ld-linux.so to better support position-dependant
376         libraries (NIIBE Yutaka).
377
378 Changes in version 1.8.2:
379
380         Added a texinfo file for ld.so and libdl (Michael 
381         Deutschmann).
382
383         Minor sparc and installation changes (Elliot Lee).
384
385         Added multiple architecture support for Debian (Leland
386         Lucius).
387
388         Changed libdl to better support RTLD_NEXT (Eric 
389         Youngdale).  Note: the exact meaning of ETLD_NEXT is 
390         still not clear in all cases.
391
392         Removed some libc dependencies from libdl.  Still need
393         to remove malloc and free.
394
395 Changes in version 1.8.1:
396
397         Changed ld.so to be compiled as ELF.  This also means
398         that ELF support is now required.  A.out support is 
399         still optional.
400
401         Changed ld-linux.so and libdl.so to use the rpath in the 
402         executable instead of in the invoking shared library.
403
404         More m68k fixes (Andreas Schwab).
405
406         Various sparc fixes (Miguel de Icaza).
407
408         Changed ldcnnfig to ignore libraries ending in '~'.
409
410         Changed ldconfig to allow alternative conf and cache 
411         files to be specified on the command-line.
412
413         Changed libdl.so to work when dlsym is passed a NULL
414         handle pointer.
415
416 Changes in version 1.8.0:
417
418         Changed ld-linux.so to be more liberal when checking to
419         see if a library is already loaded.  This should avoid
420         the duplicate loading problem for programs linkeed with
421         the -rpath option.
422
423         Various m68k fixes (Andreas Schwab).
424
425         Changed ld.so to only use LD_AOUT_LIBRARY_PATH and
426         LD_AOUT_PRELOAD and ld-linux.so to only use 
427         LD_LIBRARY_PATH and LD_PRELOAD.  LD_ELF_LIBRARY_PATH
428         and LD_ELF_PRELOAD are no longer supported.
429
430         Changed ld-linux.so to allow debugging of shared and
431         dynamically loaded libraries (H.J. Lu, Andreas Schwab).
432
433         Changed ld-linux.so to preload ELF shared libraries 
434         listed in /etc/ld.so.preload.  This allows secure 
435         preloads, even for setuid/setgid programs.
436
437         Changed ld-linux.so to keep ld.so.cache mapped at all
438         times.
439
440         Changed ldconfig to allow #-style comments in ld.so.conf.
441
442         Removed various compiler warnings (Richard Sladkey and
443         David Engel).
444
445         Changed ldd to work on ELF shared libraries.  This may
446         need a little more work.
447
448 Changes in version 1.7.14:
449
450         Changed ldconfig to recognize ELF shared libraries
451         generated by post-2.6 versions of ld (Andreas Schwab).
452
453         Changed ldconfig to not remove stale links that do not
454         have a version number since they may be needed by ld.
455
456 Changes in version 1.7.13:
457
458         Fixed a problem in ld-linux.so where a program linked
459         with a shared library that was not used could result in
460         a segmentation fault (H.J. Lu).
461
462 Changes in version 1.7.12:
463
464         Fixed a problem in libdl.so where the wrong library
465         could be marked as global when RTLD_GLOBAL was used
466         (Lars Heete).
467
468         Installed dlfcn.h with libdl.so instead of requiring
469         it to be supplied with libc.
470
471         Removed support for libldso.a since it was nearly
472         impossible to use anyway.
473
474         Changed ldd to detect when the program being checked
475         exited abnormally.
476
477 Changes in version 1.7.11:
478
479         Changed ld.so and ld-linux.so to delete all variations
480         of LD_PRELOAD and LD_LIBRARY_PATH for set[ug]id programs,
481         This makes it harder for broken set[ug]id programs to be
482         compromised.
483
484         Fixed a problem in libdl.so where dlsym would not accept
485         the handle returned from dlopen(0, *).
486
487 Changes in version 1.7.10:
488
489         Changed ld-linux.so and libdl.so to support RTLD_GLOBAL
490         (Eric Youngdale).
491
492 Changes in version 1.7.9:
493
494         Fixed a problem in ld-linux.so in detecting when the 
495         new user/group information is provided by the kernel.
496
497         Fixed a problem in ld-linux.so where a buffer could be
498         overflowed if a large number of libraries were loaded
499         (Thomas Moore).
500
501 Changes in version 1.7.8:
502
503         Changed the Makefiles and install scripts to support 
504         a.out- and ELF-only configurations.
505
506         Changed ld-linux.so to use the user/group information
507         provided by linux 1.3.23+ instead of making syscalls
508         to get it.
509
510         Changed libdl.so to support RTLD_NEXT (Glenn Fowler).
511
512         Changed libdl.so to only execute the fini sections
513         instead of completely closing libraries at exit (Glenn
514         Fowler).
515
516         Changed ld.so and ld-linux.so to print the required
517         cache version when a mismatch is detected.
518
519         Changed ld-linux.so to not require on /dev/zero (Ralph
520         Loader).
521
522         Minor m68k cleanups (Andreas Schwab).
523
524 Changes in version 1.7.7:
525
526         Fixed problems compiling with recent 1.3.x kernels.
527
528         Changed ld-linux.so to not use MAP_DENYWRITE until the
529         permission issue regarding it is resolved.
530
531 Changes in version 1.7.6:
532
533         Fixed a bug in ld-linux.so dealing with a zero-length
534         LD_{ELF_}PRELOAD.
535
536         Changed ld.so and ld-linux.so to truncate all variations
537         of LD_PRELOAD and LD_LIBRARY_PATH for set[ug]id programs.
538
539 Changes in version 1.7.5:
540
541         Changed ldconfig to recognize libraries without any
542         version number (eg. libXYZ.so).
543
544         Changed ldconfig to not generate a corrupt cache when
545         the disk is full or other write errors occur.
546
547         Changed ld-linux.so to map files with MAP_DENYWRITE to
548         keep them from being changed while the file is in use
549         (Rick Sladkey).
550
551         Changed libdl to not overwrite the scope pointer of a 
552         library if it was already loaded (H.J. Lu).
553
554         Changed ld-linux.so so gdb can be used on constructors
555         (Eric Youngdale).
556
557         Changed ldconfig to ignore ELF libraries where the soname
558         does not match the file name on the assumption that it is
559         a used at compile-time (eg. libcurses.so -> libncruses.so).
560
561 Changes in version 1.7.4:
562
563         Changed ld-linux.so and libdl to use the appropriate
564         rpaths when searching for shared libraries (Eric
565         Youngdale).
566
567         Changed ld-linux.so to search rpath before using the
568         cache.  This more closely conforms to the IBCS standard.
569
570 Changes in version 1.7.3:
571
572         Changed ld-linux.so to only print a library name the
573         first time it is loaded when run from ldd.
574
575         Fixed a bug in ldconfig where an invalid cache could be
576         generated if a directory was specified multiple times in
577         ld.so.conf.
578
579         Changed ld-linux.so so it will return the address of a
580         weak symbol when called from dlsym in libdl (Eric 
581         Youngdale.
582
583 Changes in version 1.7.2:
584
585         Changed libdl.so again to fix the undefined foobar
586         problem.
587
588 Changes in version 1.7.1:
589
590         Changed libdl so it will compile at optimization level
591         O3 or higher.
592
593         Changed ldconfig to always create the cache file with 
594         mode 644.
595
596         Changed ldconfig to not ingore valid symlinks.
597
598         Changed ldconfig to use the library name as the soname 
599         for ELF libraries that do not have an soname entry.
600
601         Changed ld-linux.so to print the actual, requested library
602         name at the time it is loaded instead of trying to figure
603         it out after the fact.
604
605 Changes in version 1.7.0:
606
607         Changed ldconfig to read the actual soname from the image
608         for ELF libraries and make it available to ld-linux.so.  
609         The soname for DLL libraries is still determined by
610         truncating the minor numbers from the image file name.
611
612         Changed ldconfig to no longer support the undocumented
613         sort options.
614
615         Changed ld.so to require a valid cache to find libraries
616         in directories specified in ld.so.conf.  /usr/lib and /lib
617         are still searched as a last resort.  Ld-linux.so already
618         operated this way.
619
620         Fixed a bug in libldso.a where the arguments to
621         shared_loader were not parsed correctly (Wolfram Gloger).
622
623         Added support for RELA-style relocations under Linux/68k
624         (Andreas Schwab).
625
626         Changed ld-linux.so to only map the cache once for all
627         libraries instead of individually for each library.
628
629         Changed ld-linux.so continue searching the cache instead of
630         giving up when failing to load the first entry found.
631
632         Changed ld-linux.so to produce output similar to ld.so when
633         run from ldd or when errors occur.
634
635 Changes in version 1.6.7:
636
637         Changed the install scripts to make sure that ld.so and
638         ld-linux.so are always usable.
639
640         Added support for Linux/Sparc (Eric Youngdale).
641
642         Added support for Linux/68k (Andreas Schwab).
643
644         Fixed various bugs in ld-linux.so dealing with closing
645         files, unmapping memory, dereferencing NULL pointers and 
646         printing library names (David Engel, Eric Youngdale and 
647         Andreas Schwab).
648
649         Replaced the manual page for libdl with a freely
650         distributable one (Adam Richter).
651
652         Fixed a bug in ld-linux.so where LD_LIBRARY_PATH and
653         LD_PRELOAD were not cleared for setuid/setgid programs.
654
655         Fixed a bug in libdl where dlsym would not return the
656         correct address of a symbol if it was redefined in another
657         library (Oleg Kibirev).
658
659         Changed ld-linux.so to use the following order to search 
660         for libraries:  LD_{ELF_}LIBRARY_PATH, ld.so.cache, rpath, 
661         /usr/lib and /lib.
662
663         Changed ld-linux.so to not needlessly allocate memory when
664         using ld.so.cache.
665
666 Changes in version 1.6.6:
667
668         Changed ldconfig to not warn about removing stale links
669         unless the -v option is specified.
670
671         Added manual pages for libdl (from FreeBSD/Sun)
672
673         Fixed a bug in ld.so dealing with preloading of objects
674         generated by recent versions of ld (Mitch D'Souza).
675
676         Fixed bugs in ldd where some errors were either not
677         detected or not printed.
678
679         Fixed a bug in ld-linux.so where the trailing nul in a
680         library name was not being copied (Owen Taylor).
681
682 Changes in version 1.6.5:
683
684         Changed ldconfig to remove stale symbolic links.
685
686         Added debug hooks in ld-linux.so and libdl.so to be used 
687         by a future version of gdb (Eric Youngdale).
688
689 Changes in version 1.6.4:
690
691         Change ld-linux.so to print on stdout instead of stderr
692         when run from ldd.
693
694         Added support for Debian GNU/Linux packaging.
695
696 Changes in version 1.6.3:
697
698         Fixed a bug in libdl when closing a library (H.J. Lu).
699
700 Changes in version 1.6.2:
701
702         Changed the error message printed by ldd when a file is
703         not a.out or ELF.  It used to only list a.out formats.
704
705         Changed ldconfig to no longer cache and set up links for
706         ld-linux.so.
707
708         Changed ld-linux.so and libdl to not conflict with upcoming
709         changes in kernel header files.
710
711         Changed ld-linux.so to not print preloaded libraries.
712
713 Changes in version 1.6.1:
714
715         Updated the installation script.
716
717         Changed ld.so and ld-linux.so to look for LD_AOUT_PRELOAD
718         and LD_ELF_PRELOAD, respectively, before LD_PRELOAD.
719
720         Changed ld.so and ld-linux.so to use LD_AOUT_LIBRARY_PATH
721         and LD_ELF_LIBRARY_PATH, respectively, instead of
722         AOUT_LD_LIBRARY_PATH and ELF_LD_LIBRARY_PATH.
723
724 Changes in version 1.6.0:
725
726         Changed ldconfig to process libraries which do not have
727         a minor version or patch level number.
728
729         Incorporated ld-linux.so and libdl.so.
730
731         Changed ld.so and ld-linux.so to not miss entries in the
732         cache when the fully qualified library is requested.
733
734         Changed ldconfig to use stdout instead of stderr when
735         printing the cache.
736
737 Changes in version 1.5.3:
738
739         LD_PRELOAD enhancements (Tristan Gigold).
740
741         LD_PRELOAD patch for linux-68k (Andreas Schwab).
742
743 Changes in version 1.5.2:
744
745         More ELF changes (Mitch D'Souza).
746
747         Changed ldconfig to also update the link for ld-linux.so.
748
749 Changes in version 1.5.1:
750
751         More ELF and LD_PRELOAD changes (Mitch D'Souza).
752
753 Changes in version 1.5.0:
754
755         Chnaged all executables to QMAGIC (Mitch D'Souza and Rick
756         Sladkey).
757
758         Added preliminary support for ELF to ldd and ldconfig (Eric 
759         Youndale and H.J. Lu).
760
761         Added support for LD_PRELOAD to ld.so (Mitch D'Souza).
762
763         Removed the "advertising" clause from the copyright notices
764         in all source files.
765
766 Changes in version 1.4.4:
767
768         Changed ldconfig to support QMAGIC libraries.
769
770         Fixed a bug in ld.so where some of the error messages had
771         transposed arguments.
772
773 Changes in version 1.4.3:
774
775         Fixed an obscure bug in ld.so where an index was not being
776         incremented when a library was not found using the cache.
777
778 Changes in version 1.4.2:
779
780         Changed ldconfig to issue a warning and continue instead
781         of an error and exiting when a link can't be updated.  
782         This is useful when some libraries are imported on read-
783         only file systems, such as an NFS mounted /usr.
784
785         Changed ld.so to be more robust in searching for libraries.
786         A library is not considered found unless it can actually be
787         loaded.  If a library is not found using the cache, the
788         standard directories are searched as in pre-cache versions.
789
790 Changes in version 1.4.1:
791
792         Fixed minor Makefile problems.
793
794         Added support for linux-68k.
795
796         Fixed a bug in ld.so where libraries with absolute paths
797         were not handled correctly.
798
799         Changed ld.so to ignore the directory in the names of
800         shared libraries by default.  This allows older libraries
801         with absolute paths, such as the XView libraries, to take
802         advantage of the cache support.
803
804         Added a minimal usage message to ldconfig.
805
806 Changes in version 1.4:
807
808         Fixed bug in ld.so where minor version numbers were not
809         reported correctly when a minor version incompatibility
810         was found.
811
812         Fixed bug in ldconfig where libraries with subversion
813         numbers greater than 9 were not compared correctly.
814
815         Added Mitch D'Souza's support for suppressing warning
816         messages from ld.so about minor version incompatibilities.
817
818         Added Mitch D'Souza's support for using a cache to speed
819         up searching for libraries in the standard directories.
820
821         Added Mitch D'Souza's support for a debugging version of
822         ld.so.  Link with -lldso if you think you are experiencing
823         dynamic linker problems.
824
825 Changes in version 1.3:
826
827         Added support for libraries using absolute pathnames.  If I
828         had known that the XView libraries used them, I would have
829         added this earlier.
830
831         Fixed a bug handling old libraries using a pathname beginning
832         with '/' or '/lib/'.
833
834 Changes in version 1.2a:
835
836         Fixed a minor bug in ldd which caused all files, specifically
837         scripts, to be recognized as binaries.  Thanks to Olaf Flebbe
838         for reporting it.
839
840 David Engel
841 david@sw.ods.com