1crle(1)                          User Commands                         crle(1)
2
3
4

NAME

6       crle - configure runtime linking environment
7

SYNOPSIS

9       crle [-64] [-a name] [-A name] [-c conf] [-e env] [-E env]
10            [-f flags] [-i name] [-I name] [-g name] [-G name]
11            [-l dir] [-o dir] [-s dir] [-t [ ELF | AOUT]] [-u] [-v]
12
13

DESCRIPTION

15       The  crle  utility  provides  for the creation and display of a runtime
16       linking configuration file. The configuration file is read  and  inter‐
17       preted  by  the runtime linker, ld.so.1(1), during process startup. The
18       runtime linker attempts to read a default configuration  file  for  all
19       processes.  For  32-bit  processes,  the  default configuration file is
20       /var/ld/ld.config. For 64-bit processes, the default configuration file
21       is /var/ld/64/ld.config.
22
23
24       Without  any  arguments, or with just the -c option, crle displays con‐
25       figuration information. This information includes  the  contents  of  a
26       configuration  file,  any system defaults and the command-line required
27       to regenerate the configuration file. When used with any other options,
28       a new configuration file is created or updated.
29
30
31       The runtime linker can also be directed to an alternative configuration
32       file by setting one of the LD_CONFIG family  of  environment  variable.
33       LD_CONFIG  applies to both 32-bit and 64-bit programs. Since 32-bit and
34       64-bit configuration files differ, a single configuration  file  cannot
35       be used for both class of object. Hence, LD_CONFIG can adversely affect
36       program execution in cases where a program of one class executes a pro‐
37       gram  of  the other class. In particular, it is common practice for the
38       32-bit version of standard Solaris utilities to  execute  their  64-bit
39       counterpart. LD_CONFIG cannot be successfully used in this case. There‐
40       fore, the use of the LD_CONFIG_32 and  LD_CONFIG_64  environment  vari‐
41       ables,  that precisely target the appropriate class of process, is rec‐
42       ommended.
43
44
45       Creating an incorrect configuration  file  in  the  standard  location,
46       /var/ld, can prevent programs from running, and can therefore be diffi‐
47       cult to recover from. To guard against this  situation,  it  is  recom‐
48       mented  that  new  configuration  files first be created in a temporary
49       location. Then set the appropriate LD_CONFIG  environment  variable  to
50       this  new configuration file. This setting causes the new configuration
51       file to be used by the runtime linker instead  of  any  default.  After
52       verification,  the  new  configuration file can be moved to the default
53       location if desired. At any time, the environment variable  LD_NOCONFIG
54       can  be  set  to any value to instruct the runtime linker to ignore any
55       configuration files. This setting can prove useful during  experimenta‐
56       tion.
57
58
59       A configuration file can contain the following information.
60
61       Default Search Paths
62
63           The  runtime  linker uses a prescribed search path for locating the
64           dynamic dependencies of an object. This search path starts with the
65           components  of any LD_LIBRARY_PATH definition, followed by the com‐
66           ponents of an object's runpath. Finally, any default  search  paths
67           specific to the object's class are used. This last component of the
68           search path can be expressed within the configuration  file.  Typi‐
69           cally,  use  of  this  facility should be augmented with any system
70           default. See the -l and -u options.
71
72
73       Trusted Directories
74
75           When processing a secure application, the runtime linker  restricts
76           the  use  of LD_LIBRARY_PATH searches, and $ORIGIN token expansion.
77           See Security in Linker and Libraries Guide. In addition, the direc‐
78           tories  from  which  preload and audit libraries can be located are
79           also restricted. The path names that are  associated  with  preload
80           and  audit  libraries  are restricted to known trusted directories.
81           Trusted directories can be expressed within the configuration file.
82           Typically, use of this facility should be augmented with any system
83           defaults. See the -s and -u options.
84
85
86       Environment Variables
87
88           Any environment variable interpreted by the runtime linker  can  be
89           specified within the configuration file.
90
91
92       Directory Cache
93
94           The  location  of  shared objects within defined directories can be
95           maintained as a cache within the configuration file. This directory
96           cache  can  reduce the overhead of searching for application depen‐
97           dencies.
98
99
100       Alternative Objects
101
102           In conjunction with the directory cache, shared  objects  can  have
103           alternative  objects  specified for use at runtime. These alternate
104           objects, can be supplied by the user. Alternative objects can  also
105           be  created by crle as copies of shared objects fixed to known mem‐
106           ory locations. These fixed alternative  objects  can  require  less
107           processing  at  runtime  than their original shared object counter‐
108           part.
109
110
111
112       Defining additional default search paths, or additional trusted  direc‐
113       tories can be useful for administrators who wish to install third party
114       software in a central location, or otherwise alter the search  path  of
115       applications that might not have been coded with a suitable runpath.
116
117
118       The  declaration  of  alternative objects provides a means of replacing
119       dependencies  other  than  by  using  symbolic   links   or   requiring
120       LD_LIBRARY_PATH settings.
121
122
123       The  declaration  of  environment variables that are interpreted by the
124       runtime linker provides a means of centralizing  their  definition  for
125       all applications.
126
127
128       The  directory cache, and crle generated alternate objects, can provide
129       a means of reducing  the  runtime  startup  overhead  of  applications.
130       Alternative  objects  can  be useful for applications that require many
131       dependencies, or whose dependencies are expensive to  relocate.  Shared
132       objects  that  contain  position-dependent  code are often expensive to
133       relocate. Note, the system has many caching facilities that help  miti‐
134       gate expenses such as negative path lookups, and thus employing crle to
135       create a directory cache may have minimal effect other  than  for  some
136       very specific cases.
137
138
139       When  alternate objects that are generated by crle are specified within
140       a configuration file, the runtime linker performs some minimal  consis‐
141       tency  verification. The alternative objects are verified against their
142       originating objects. This verification is intended to avert application
143       failure should an applications configuration information become out-of-
144       sync with the underlying system components. When this situation  arises
145       the  flexibility  offered  by  dynamic linking system components can be
146       compromised. This type of application failure can be very difficult  to
147       diagnose.  No verification of directory cache information is performed.
148       Any changes to the directory structure are not seen by a process  until
149       the cache is rebuilt.
150
151
152       System shared objects are often well tuned, and can show little benefit
153       from being cached. The directory cache and alternative object  features
154       are  typically  applicable to user applications and shared objects, and
155       may only show improvement in some very specific cases.
156
157
158       crle creates alternate objects for the shared objects that are  discov‐
159       ered  when using the -I and -G options, using dldump(3C). The alternate
160       object is created in  the  directory  specified  by  the  preceding  -o
161       option, or defaults to the directory in which the configuration file is
162       created. The flags used by dldump() are specified using the -f  option,
163       or default to RTLD_REL_RELATIVE.
164

OPTIONS

166       The following options are supported.
167
168       -64
169
170           Specify  to  process 64-bit objects, the default is 32-bit. Use -64
171           to create a 64-bit specific configuration file.
172
173
174       -a name
175
176           Create an alternative path name for name. The alternative path name
177           is added to the configuration file.
178
179           The  actual alternative file must be supplied by the user. Multiple
180           occurrences of this option are permitted. If name is  a  directory,
181           each  shared  object within the directory is added to the cache. If
182           name does not exist, then name is marked in the cache as a nonexis‐
183           tent file.
184
185           Typically, this option is used with the -o option.
186
187
188       -A name
189
190           Create an optional alternative path name for name. This alternative
191           path name is added to the configuration file.
192
193           This option mimics the -a option, except that if the alternative is
194           unavailable  at  runtime,  the  original  object name is used. This
195           model mimics the use of auxiliary filters. See Generating Auxiliary
196           Filters in Linker and Libraries Guide.
197
198           Typically, this option is used with the -o option.
199
200
201       -c conf
202
203           Specify  to use the configuration file name conf. If this option is
204           not supplied, the default configuration file is used.
205
206
207       -e env
208
209           Specify a replaceable environment variable, env.  Only  environment
210           variables that are applicable to the runtime linker are meaningful.
211           Multiple occurrences of this option are permitted. This  option  is
212           similar  to the -E option. However, the options differs in how con‐
213           figuration file definitions, and process environment definitions of
214           the same name are resolved at runtime.
215
216           A  definition established in a configuration file can be overridden
217           by a process environment definition, or be suppressed  by  a  null-
218           value process environment definition.
219
220           In  other  words,  these  configuration  file  definitions  can  be
221           replaced, or removed by the process environment at runtime.
222
223
224       -E env
225
226           Specify a permanent environment  variable,  env.  Only  environment
227           variables that are applicable to the runtime linker are meaningful.
228           Multiple occurrences of this option are permitted. This  option  is
229           similar  to  the -e option. However, the option differs in how con‐
230           figuration file definitions, and process environment definitions of
231           the same name are resolved at runtime.
232
233           Environment variable definitions that are meaningful to the runtime
234           linker fall into one of two categories.  Singular  definitions  are
235           definitions  such as LD_NOLAZYLOAD=1 and LD_DEBUG_OUTPUT=file. List
236           definitions, which can take one or  more  values,  are  definitions
237           such as LD_LIBRARY_PATH=path, and LD_DEBUG=files,details.
238
239           A  singular  definition that is established in a configuration file
240           takes precedence over a process environment definition. A list def‐
241           inition  that is established in a configuration file is appended to
242           a process environment definition. Any  definition  that  is  estab‐
243           lished  in  a  configuration  file can not be suppressed by a null-
244           value process environment definition.
245
246           In other words, these configuration file  definitions  can  not  be
247           replaced, or removed by the process environment at runtime.
248
249
250       -f flags
251
252           Provide the symbolic flags argument to the dldump(3C) calls used to
253           generate alternate objects. Any of  the  RTLD_REL  flags  that  are
254           defined  in /usr/include/dlfcn.h can be used. Multiple flags can be
255           or'ed together using the "|" character. In this  case,  the  string
256           should  be quoted to avoid expansion by the shell. If no flags val‐
257           ues are provided the default flag is RTLD_REL_RELATIVE.
258
259
260       -i name
261
262           Add an individual name to the configuration cache. Multiple  occur‐
263           rences of this option are permitted. name can be a shared object or
264           a directory. If name is a directory, each shared object within  the
265           directory  is  added to the cache. If name does not exist, the name
266           is marked in the cache as a nonexistent directory.
267
268
269       -I name
270
271           Mimic the -i, and in addition any shared object that  is  processed
272           has  an  alternative  created using dldump(3C). If the -f flag con‐
273           tains RTLD_REL_EXEC, then name can be  a  dynamic  executable,  for
274           which an alternative is created. Only one dynamic executable can be
275           specified in this manner, as the cache that is created is  specific
276           to this application.
277
278
279       -g name
280
281           Add  the  group  name  to  the  configuration cache. Each object is
282           expanded to determine its  dependencies.  Multiple  occurrences  of
283           this option are permitted. name can be a dynamic executable, shared
284           object or a directory. If name  is  a  shared  object,  the  shared
285           object  and  its  dependencies are added to the cache. If name is a
286           directory, each shared object within the directory, and its  depen‐
287           dencies, are added to the cache.
288
289
290       -G name
291
292           Mimic the -g option, and in addition any shared object that is pro‐
293           cessed has an alternative created using dldump(3C). If  name  is  a
294           dynamic executable, and the -f flag contains RTLD_REL_EXEC, then an
295           alternative for the dynamic executable is also  created.  Only  one
296           dynamic  executable  can  be  specified in this manner as the cache
297           that is created is specific to this application.
298
299
300       -l dir
301
302           Specify a new default search directory dir for ELF or AOUT objects.
303           Multiple  occurrences  of  this  option  are permitted. The type of
304           object that is applicable to the search, is specified by  the  pre‐
305           ceding -t option, or defaults to ELF.
306
307           The  default  search paths for 32-bit ELF objects are /lib followed
308           by /usr/lib. For 64-bit ELF objects, the default search  paths  are
309           /lib/64 followed by /usr/lib/64.
310
311           The  default  search paths for AOUT objects are /usr/4lib, followed
312           by /usr/lib and finally /usr/local/lib.
313
314           Use of this option replaces the default search path.  Therefore,  a
315           -l  option  is  normally  required  to  specify the original system
316           default in relation to any new paths that are being  applied.  How‐
317           ever,  if the -u option is in effect, and a configuration file does
318           not exist, the system defaults are added to the  new  configuration
319           file.  These defaults are added before the new paths specified with
320           the -l option.
321
322
323       -o dir
324
325           When used with either the -a or -A options, specifies the directory
326           dir  in which any alternate objects exist. When alternative objects
327           are created by crle, this option specified  where  the  alternative
328           are  created.  Without  this option, alternate objects exist in the
329           directory in which the  configuration  file  is  created.  Multiple
330           occurrences  of  this option are permitted, the directory dir being
331           used to locate alternatives for any following command-line options.
332           Alternative  objects are not permitted to override their associated
333           originals.
334
335           Typically, this option is used with the -a or -A options.
336
337
338       -s dir
339
340           Specify a new trusted directory dir for secure ELF or AOUT objects.
341           See  SECURITY in ld.so.1(1) for a definition of secure objects. See
342           Security in Linker and Libraries Guide for a discussion of  runtime
343           restrictions imposed on secure applications.
344
345           Multiple  occurrences  of  this  option  are permitted. The type of
346           object that is applicable to the search is specified by the preced‐
347           ing -t option, or defaults to ELF.
348
349           The  default trusted directories for secure 32-bit ELF objects, and
350           AOUT objects, are  /lib/secure  followed  by  /usr/lib/secure.  For
351           64-bit  secure  ELF  objects,  the  default trusted directories are
352           /lib/secure/64 followed by /usr/lib/secure/64.
353
354           Use of this option replaces the default trusted directories. There‐
355           fore, a -s option is normally required to specify the original sys‐
356           tem default in relation to  any  new  directories  that  are  being
357           applied.  However,  if the -u option is in effect, and a configura‐
358           tion file does not exist, the system defaults are added to the  new
359           configuration  file. These defaults are added before the new direc‐
360           tories specified with the -l option.
361
362
363       -t ELF | AOUT
364
365           Toggle the object type that is applicable to any -l or  -s  options
366           that follow. The default object type is ELF.
367
368
369       -u
370
371           Request  that  a  configuration  file be updated, possibly with the
372           addition of new information. Without other  options,  any  existing
373           configuration  file is inspected and its contents recomputed. Addi‐
374           tional arguments allow information to be appended to the recomputed
375           contents. See NOTES.
376
377           If  a  configuration file does not exist, the configuration file is
378           created as directed by the other arguments. In the case of  the  -l
379           and  -s  options, any system defaults are first applied to the con‐
380           figuration  file  before  the  directories  specified  with   these
381           options.
382
383           The  configuration  file  can be in the older format that lacks the
384           system identification information that is normally written  at  the
385           beginning  of  the  file.  In this case, crle does not place system
386           identification information into the resulting file, preserving com‐
387           patibility of the file with older versions of Solaris. See NOTES.
388
389
390       -v
391
392           Specify  verbose  mode. When creating a configuration file, a trace
393           of the files that are being processed is written  to  the  standard
394           out.  When  printing  the  contents  of  a configuration file, more
395           extensive directory and file information is provided.
396
397
398
399       By default, the runtime linker attempts to read the configuration  file
400       /var/ld/ld.config    for    each    32-bit    application    processed.
401       /var/ld/64/ld.config is read for each 64-bit application. When process‐
402       ing  an  alternative  application,  the  runtime  linker  uses  a $ORI‐
403       GIN/ld.config.app-name configuration file if present. See NOTES. Appli‐
404       cations  can reference an alternative configuration file by setting the
405       LD_CONFIG environment variable. An alternative configuration  file  can
406       also  be  specified  by  recording  the  configuration file name in the
407       application at the time the application is built. See the -c option  of
408       ld(1).
409

EXAMPLES

411       Example 1 Experimenting With a Temporary Configuration File
412
413
414       The following example creates a temporary configuration file with a new
415       default search path for ELF objects. The environment  variable  LD_CON‐
416       FIG_32 is used to instruct the runtime linker to use this configuration
417       file for all 32-bit processes.
418
419
420         $ crle -c /tmp/ld.config -u -l /local/lib
421         $ crle -c /tmp/ld.config
422
423         Configuration file [version 4]: /tmp/ld.config
424           Platform:     32-bit MSB SPARC
425           Default Library Path (ELF):  /lib:/usr/lib:/local/lib
426           Trusted Directories (ELF):   /lib/secure:/usr/lib/secure  \
427                                        (system default)
428
429         Command line:
430           crle -c /tmp/ld.config -l /lib:/usr/lib:/local/lib
431
432         $ LD_CONFIG_32=/tmp/ld.config date
433         Thu May 29 17:42:00 PDT 2008
434
435
436
437       Example 2 Updating and Displaying a New Default  Search  Path  for  ELF
438       Objects
439
440
441       The  following  example  updates and displays a new default search path
442       for ELF objects.
443
444
445         # crle -u -l /local/lib
446         # crle
447
448         Configuration file [version 4]: /var/ld/ld.config
449           Platform:     32-bit MSB SPARC
450           Default Library Path (ELF):  /lib:/usr/lib:/local/lib
451           Trusted Directories (ELF):   /lib/secure:/usr/lib/secure  \
452                                        (system default)
453
454         Command line:
455           crle -l /lib:/usr/lib:/local/lib
456
457         # crle -u -l /ISV/lib
458         # crle
459
460         Configuration file [version 4]: /var/ld/ld.config
461           Platform      32-bit MSB SPARC
462           Default Library Path (ELF):  /lib:/usr/lib:/local/lib:/ISV/lib
463           Trusted Directories (ELF):   /lib/secure:/usr/lib/secure  \
464                                        (system default)
465
466         Command line:
467           crle -l /lib:/usr/lib:/local/lib:/usr/local/lib
468
469
470
471
472       In this example, the  default  configuration  file  initially  did  not
473       exist.  Therefore,  the  new  search path /local/lib is appended to the
474       system default. The next update appends the  search  path  /ISV/lib  to
475       those paths already established in the configuration file.
476
477
478       Example 3 Recovering From a Bad Configuration File
479
480
481       The  following  example creates a bad configuration file in the default
482       location. The file can be removed by instructing the runtime linker  to
483       ignore  any  configuration  file with the LD_NOCONFIG environment vari‐
484       able. Note, it is recommended that  temporary  configuration  files  be
485       created  and the environment variable LD_CONFIG used to experiment with
486       these files.
487
488
489         # crle -l /local/lib
490         # date
491         ld.so.1: date: fatal: libc.so.1: open failed:  \
492            No such file or directory
493         Killed
494         # LD_NOCONFIG=yes rm /var/ld/ld.config
495         # date
496         Thu May 29 17:52:00 PDT 2008
497
498
499
500
501       Note, the reason the configuration file is bad is  because  the  system
502       default  search  paths  are not present. Hence, the date utility is not
503       able to locate the system dependencies that it required. In this  case,
504       the -u option should have been used.
505
506       Example  4  Creating  and  Displaying a New Default Search Path and New
507       Trusted Directory for ELF Objects
508
509
510       The following example creates and displays a new  default  search  path
511       and new trusted directory for ELF objects.
512
513
514         # crle -l /local/lib -l /lib -l /usr/lib -s /local/lib
515         # crle
516
517         Configuration file [version 4]: /var/ld/ld.config
518           Platform:     32-bit MSB SPARC
519           Default Library Path (ELF):  /local/lib:/lib:/usr/lib
520           Trusted Directories (ELF):   /local/lib
521
522         Command line:
523           crle -l /local/lib:/lib:/usr/lib -s /local/lib
524
525
526
527
528       With  this  configuration  file,  third  party  applications  could  be
529       installed  in  /local/bin  and   their   associated   dependencies   in
530       /local/lib.  The  default search path allows the applications to locate
531       their dependencies without the need to set LD_LIBRARY_PATH. The default
532       trusted directories have also been replaced with this example.
533
534
535       Example 5 Creating a Directory Cache for ELF Objects
536
537
538       The following example creates a directory cache for ELF objects.
539
540
541         $ crle -i /usr/dt/lib -i /usr/openwin/lib -i /lib -i /usr/lib  \
542                 -c config
543         $ ldd -s ./main
544         ....
545            find object=libc.so.1; required by ./main
546             search path=/usr/dt/lib:/usr/openwin/lib  (RUNPATH/RPATH ./main)
547             trying path=/usr/dt/lib/libc.so.1
548             trying path=/usr/openwin/lib/libc.so.1
549             search path=/lib  (default)
550             trying path=/lib/libc.so.1
551                 libc.so.1 =>     /lib/libc.so.1
552
553         $ LD_CONFIG=config ldd -s ./main
554         ....
555            find object=libc.so.1; required by ./main
556             search path=/usr/dt/lib:/usr/openwin/lib  (RUNPATH/RPATH ./main)
557             search path=/lib  (default)
558             trying path=/lib/libc.so.1
559                 libc.so.1 =>     /lib/libc.so.1
560
561
562
563
564       With  this  configuration,  the  cache reflects that the system library
565       libc.so.1 does not exist in the directories /usr/dt/lib  or  /usr/open‐
566       win/lib.  Therefore,  the  search  for  this  system file ignores these
567       directories even though the application's runpath indicates these paths
568       should be searched.
569
570
571       Example 6 Creating an Alternative Object Cache for an ELF Executable
572
573
574       The  following  example  creates an alternative object cache for an ELF
575       executable.
576
577
578         $ crle -c /local/$HOST/.xterm/ld.config.xterm  \
579                 -f RTLD_REL_ALL  -G /usr/openwin/bin/xterm
580         $ ln  -s /local/$HOST/.xterm/xterm  /local/$HOST/xterm
581         $ ldd /usr/local/$HOST/xterm
582             libXaw.so.5 =>  /local/$HOST/.xterm/libWaw.so.5  (alternate)
583             libXmu.so.4 =>  /local/$HOST/.xterm/libXmu.so.4  (alternate)
584             ....
585             libc.so.1 =>    /local/$HOST/.xterm/libc.so.1  (alternate)
586             ....
587
588
589
590
591       With this configuration, a new xterm and its dependencies are  created.
592       These  new  objects  are  fully  relocated to each other, and result in
593       faster startup than the originating  objects.  The  execution  of  this
594       application  uses  its  own  specific configuration file. This model is
595       generally more flexible than using the environment variable  LD_CONFIG,
596       as the configuration file can not be erroneously used by other applica‐
597       tions such as ldd(1) or truss(1).
598
599
600       Example 7 Creating an Alternative Object Cache to Replace an ELF Shared
601       Object
602
603
604       The following example creates an alternative object cache to replace an
605       ELF shared object.
606
607
608         $ ldd /usr/bin/vi
609             libcurses.so.1 =>  /lib/libcurses.so.1
610             ....
611
612         # crle -a /lib/libcurses.so.1 -o /usr/ucblib
613         # crle
614
615         Configuration file [version 4]: /var/ld/ld.config
616           Platform:     32-bit MSB SPARC
617           Default Library Path (ELF):  /lib:/usr/lib  (system default)
618           Trusted Directories (ELF):   /lib/secure:/usr/lib/secure  \
619                                        (system default)
620
621         Directory: /lib
622           libcurses.so.1  (alternate: /usr/ucblib/libcurses.so.1)
623         ....
624
625         $ ldd /usr/bin/vi
626             libcurses.so.1 => /usr/ucblib/libcurses.so.1 (alternate)
627             ....
628
629
630
631
632       With this configuration, any dependency that would normally resolve  to
633       /usr/lib/libcurses.so.1 instead resolves to /usr/ucblib/libcurses.so.1.
634
635
636       Example 8 Setting Replaceable and Permanent Environment Variables
637
638
639       The  following example sets replaceable and permanent environment vari‐
640       ables.
641
642
643         # crle -e LD_LIBRARY_PATH=/local/lib  \
644                 -E LD_PRELOAD=preload.so.1
645         # crle
646         .....
647         Environment Variables:
648           LD_LIBRARY_PATH=/local/lib  (replaceable)
649           LD_PRELOAD=preload.so.1  (permanent)
650
651         .....
652         $ LD_DEBUG=files LD_PRELOAD=preload.so.2 ./main
653         .....
654         18764: file=preload.so.2;  preloaded
655         18764: file=/local/lib/preload.so.2  [ ELF ]; generating link map
656         .....
657         18764: file=preload.so.1;  preloaded
658         18764: file=/local/lib/preload.so.1  [ ELF ]; generating link map
659         .....
660
661
662
663
664       With this configuration file, a replaceable search path has been speci‐
665       fied together with a permanent preload object which becomes appended to
666       the process environment definition.
667
668

EXIT STATUS

670       The creation or display of a configuration file results in  a  0  being
671       returned. Otherwise, any error condition is accompanied with a diagnos‐
672       tic message and a non-zero value being returned.
673

NOTES

675       The ability to tag an alternative application to  use  an  application-
676       specific  configuration  file,  is possible if the original application
677       contains one of the .dynamic tags DT_FLAGS_1 or  DT_FEATURE_1.  Without
678       these entries, a configuration file must be specified using the LD_CON‐
679       FIG environment variable. Care should be  exercised  with  this  latter
680       method  as  this environment variable is visible to any forked applica‐
681       tions.
682
683
684       The use of the -u option requires at least version 2 of crle. This ver‐
685       sion  level  is evident from displaying the contents of a configuration
686       file.
687
688         $ crle
689
690         Configuration file [2]: /var/ld/ld.config
691           ......
692
693
694
695
696       With a version 2 configuration file, crle is  capable  of  constructing
697       the  command-line  arguments  required  to regenerate the configuration
698       file. This command-line construction, provides full update capabilities
699       using  the -u option. Although a version 1 configuration file update is
700       possible, the configuration file contents  might  be  insufficient  for
701       crle to compute the entire update requirements.
702
703
704       Configuration files contain platform specific binary data. A given con‐
705       figuration file can only be  interpreted  by  software  with  the  same
706       machine  class and byte ordering. However, the information necessary to
707       enforce this restriction was not included in configuration files  until
708       SXCE  build  41. As of this SXCE build, configuration files have system
709       identification information at the beginning of  the  file.  This  addi‐
710       tional  information is used by crle and the runtime to check their com‐
711       patibility with configuration files. This information also  allows  the
712       file(1) command to properly identify  configuration files. For backward
713       compatibility, older files that are missing this information are  still
714       accepted,  although  without the identification and error checking that
715       would otherwise be possible. When processing an update  (-u)  operation
716       for an older file that lacks system information, crle does not add sys‐
717       tem identification information to the result.
718

FILES

720       /var/ld/ld.config
721
722           Default configuration file for 32-bit applications.
723
724
725       /var/ld/64/ld.config
726
727           Default configuration file for 64-bit applications.
728
729
730       /var/tmp
731
732           Default location for temporary configuration file. See tempnam(3C).
733
734
735       /usr/lib/lddstub
736
737           Stub application that is employed to dldump(3C) 32-bit objects.
738
739
740       /usr/lib/64/lddstub
741
742           Stub application that is employed to dldump(3C) 64-bit objects.
743
744
745       /usr/lib/libcrle.so.1
746
747           Audit library that is employed to dldump(3C) 32-bit objects.
748
749
750       /usr/lib/64/libcrle.so.1
751
752           Audit library that is employed to dldump(3C) 64-bit objects.
753
754

ENVIRONMENT VARIABLES

756       There are no environment variables that are referenced  by  crle.  How‐
757       ever, several environment variables affect the runtime linkers behavior
758       in regard to the processing of configuration files that are created  by
759       crle.
760
761       LD_CONFIG, LD_CONFIG_32 and LD_CONFIG_64
762
763           Provide an alternative configuration file.
764
765
766       LD_NOCONFIG, LD_NOCONFIG_32 and LD_NOCONFIG_64
767
768           Disable configuration file processing.
769
770
771       LD_NODIRCONFIG, LD_NODIRCONFIG_32 and LD_NODIRCONFIG_64
772
773           Disable directory cache processing from a configuration file.
774
775
776       LD_NOENVCONFIG, LD_NOENVCONFIG_32 and LD_NOENVCONFIG_64
777
778           Disable environment variable processing from a configuration file.
779
780
781       LD_NOOBJALTER, LD_NOOBJALTER_32 and LD_NOOBJALTER_64
782
783           Disable alternative object processing from a configuration file.
784
785

ATTRIBUTES

787       See attributes(5) for descriptions of the following attributes.
788
789
790
791
792       ┌─────────────────────────────┬─────────────────────────────┐
793       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
794       ├─────────────────────────────┼─────────────────────────────┤
795       │Availability                 │SUNWtoo                      │
796       ├─────────────────────────────┼─────────────────────────────┤
797       │Interface Stability          │Committed                    │
798       └─────────────────────────────┴─────────────────────────────┘
799

SEE ALSO

801       file(1), ld(1), ld.so.1(1), dldump(3C), tempnam(3C), attributes(5)
802
803
804       Linker and Libraries Guide
805
806
807
808SunOS 5.11                        6 Oct 2008                           crle(1)
Impressum