[tlbuild] minimal .so dependencies for TL binaries (was: minimal .so dependencies for xetex)

Nikola Lečić nikola.lecic at anthesphoria.net
Mon Jan 11 13:52:39 CET 2010

Hash: RIPEMD160

Hi Peter,

Peter Breitenlohner <peb at mppmu.mpg.de> wrote
  in <alpine.LNX.2.00.1001111039510.18595 at pcl321.mppmu.mpg.de>
  on Mon, 11 Jan 2010 10:51:49 +0100 (CET):

> according to this build log (look for the line with '-o xetex ')
> xetex is linked explicitly only with libfontconfig, which in turn
> most probably depends on libexpat and others. The output of ldd shows
> all dependencies, explicit or implicit.  In order to see only the
> explicit dependencies you can, e.g., use 'objdump -p xetex'.

You are right. Sorry, I was clumsy and posted this before I actually
tested the new binary (objdump -p output is at the bottom).

However, we now have FreeBSD-7 xetex binary that works on FreeBSD-8 as
well... So, this means that, with some more tuning, we might have only
one binary set for 7 and 8, which would be perfect because, in that
case, TL2010 would contain binaries that work out of the box for ~80%
of FreeBSD users running supported releases. According to downloading
statistics from my site:

  FreeBSD-6  19.34%
  FreeBSD-7  20.99%
  FreeBSD-8  59.67%

  i386   56.35%
  amd64  43.65%

Namely, there are only three FreeBSD-7 binaries that are currently
explicitly linked against base system libs that changed version numbers
in FreeBSD-8. These binaries and respective libraries are:

        libncurses.so.7 => /lib/libncurses.so.7 (0x800652000)

        libcrypt.so.4 => /lib/libcrypt.so.4 (0x800949000)
        libncurses.so.7 => /lib/libncurses.so.7 (0x800d65000)

        libreadline.so.7 => /lib/libreadline.so.7 (0x800c76000)
        libncurses.so.7 => /lib/libncurses.so.7 (0x8010e4000)
        libz.so.4 => /lib/libz.so.4 (0x800fd0000)

Would it be possible to eliminate these dependencies as well?

[root at mordorjail8stable64]# objdump
- -p /root/TL-Inst-16641/bin/x86_64-unknown-freebsd8.0/xetex

/root/TL-Inst-16641/bin/x86_64-unknown-freebsd8.0/xetex:     file format elf64-x86-64

Program Header:
    PHDR off    0x0000000000000040 vaddr 0x0000000000400040 paddr 0x0000000000400040 align 2**3
         filesz 0x00000000000001c0 memsz 0x00000000000001c0 flags r-x
  INTERP off    0x0000000000000200 vaddr 0x0000000000400200 paddr 0x0000000000400200 align 2**0
         filesz 0x0000000000000015 memsz 0x0000000000000015 flags r--
    LOAD off    0x0000000000000000 vaddr 0x0000000000400000 paddr 0x0000000000400000 align 2**20
         filesz 0x00000000011f1e54 memsz 0x00000000011f1e54 flags r-x
    LOAD off    0x00000000011f2000 vaddr 0x00000000016f2000 paddr 0x00000000016f2000 align 2**20
         filesz 0x000000000007aaf8 memsz 0x0000000000178518 flags rw-
 DYNAMIC off    0x000000000126c1c8 vaddr 0x000000000176c1c8 paddr 0x000000000176c1c8 align 2**3
         filesz 0x00000000000001c0 memsz 0x00000000000001c0 flags rw-
    NOTE off    0x0000000000000218 vaddr 0x0000000000400218 paddr 0x0000000000400218 align 2**2
         filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
     TLS off    0x000000000121fb80 vaddr 0x000000000171fb80 paddr 0x000000000171fb80 align 2**4
         filesz 0x0000000000000000 memsz 0x0000000000000010 flags r--
EH_FRAME off    0x00000000011f1e4c vaddr 0x00000000015f1e4c paddr 0x00000000015f1e4c align 2**2
         filesz 0x0000000000000008 memsz 0x0000000000000008 flags r--

Dynamic Section:
  NEEDED      libfontconfig.so.1
  NEEDED      libfreetype.so.9
  NEEDED      libm.so.5
  NEEDED      libc.so.7
  INIT        0x404828
  FINI        0x6047d8
  HASH        0x400230
  STRTAB      0x4026d0
  SYMTAB      0x400af8
  STRSZ       0xafe
  SYMENT      0x18
  DEBUG       0x0
  PLTGOT      0x176c498
  PLTRELSZ    0x12c0
  PLTREL      0x7
  JMPREL      0x403568
  RELA        0x403460
  RELASZ      0x108
  RELAENT     0x18
  VERNEED     0x403420
  VERSYM      0x4031ce

Version References:
  required from libm.so.5:
    0x077a28b0 0x00 03 FBSD_1.0
  required from libc.so.7:
    0x077a28b0 0x00 02 FBSD_1.0

- -- 
Nikola Lečić = Никола Лечић
fingerprint : FEF3 66AF C90E EDC3 D878  7CDC 956D F4AB A377 1C9B
Version: GnuPG v2.0.14 (FreeBSD)


More information about the tlbuild mailing list