ld fails under Solaris/i386

Dennis Clarke dclarke at blastwave.org
Sat Nov 21 16:38:05 CET 2009

> On Sat, 21 Nov 2009, Vincent Lefevre wrote:
>> On 2009-11-20 13:32:02 +0100, Torbjorn Granlund wrote:
>>> Eh, I don't think that's realistic.  If somebody installs a broken cc,
>>> as, ld, make, m4 in /bin, should GMP be able to cope?
>> Is it really broken or does GMP do something illegal?
> The tools in /usr/ucb are for SunOS 4.* compatibility. I am not sure I
> would call them broken, but they are definitely not what you want.

If I may chime in here.  For the sake of clarity there is a standards(5)
manpage as well as a filesystem(5) manpage which helps with these things.
Does no one read manpages anymore?

>From filesystem(5) we see this :


         Berkeley compatibility package binaries.


         Berkeley compatibility package headers.


         Berkeley compatibility package libraries.

Software archeology :

I can tell you, as someone that has used Solaris and SunOS since the 80's,
that there was this funny transition period when we all went from SunOS4.x
over to Solaris 1. I can not recall if uname reported SunOS5.0 or SunOS5.1
but we all went looking for the old ps function that was from the BSD
based days.[1]

There was much confusion in the land.

People would stick /usr/ucb in their PATH first and all manner of strange
things were happening. Then, over time, as the SVR4 way of life settled
in, we stuck /usr/ucb at the end of the PATH. If hell froze over and you
really needed to run dumbplot or aedplot with output for a Hewlett Packard
7221 plotter then you would find it.

These days there are very few people that have that in their PATH at all.

See :

     filesystem(5) from Solaris 10

     filesystem(5) from Solaris 8

If we look at a recent standards(5) manpage on Solaris 10 in the Utilities
section we are told how to setup a somewhat strict PATH :


If you want to look at Solaris 8 :


The results from that section should be something like this in your

# as per standards(5) section Utilities for POSIX.1-2001, SUSv3
#                     Standard                        Shell Used
#    ______________________________________________________________
#    1989 ANSI  C,  1990  ISO  C,  1999  ISO  C,   /usr/xpg4/bin/sh
#    POSIX.1  (1990-2001),  SUS,  SUSv2,  SUSv3,
#    XPG4
#    POSIX.1 (1988), SVID3,  XPG3,  no  standard   /usr/bin/sh
#    specified
export PATH

That works.

You may want to add in /usr/X11/bin but don't bother with /usr/X because
that just points to /usr/openwin.

There is nothing fancy about it. No you don't get GNU ls with colors and
no you don't get vim. You get the strictly compliant UNIX utilities that
conform to POSIX.1-2001 or SUSv3.

The UCB area will probably never go away. It seems to be permanently
wedged in there and people will forever be confused about it. Even in the
very latest most up to date OpenSolaris revs where you build the kernel
yourself and install all the bits carefully .. you see this :

$ ssh neptune
Last login: Fri Nov 20 21:10:58 2009 from
Sun Microsystems Inc.   SunOS 5.11      Blastwave       Nov. 07, 2009
SunOS Internal Development: dclarke 2009-Nov-07 [onnv-gate]
bfu'ed from /build/archives/sparc/nightly on 2009-11-07
Sun Microsystems Inc.   SunOS 5.11      snv_123 November 2008
You have mail.
$ ls /usr/ucb
Mail        expr        install     plottoa     sparcv9     uptime
aedplot     fastboot    ln          printenv    stty        users
arch        fasthalt    logger      ps          sum         vacation
atoplot     file        lpc         quota       t300        vedit
basename    finger      lpq         rcp         t300s       vi
bgplot      fmt         lpr         rdate       t4013       view
biff        fold        lprm        rdist       t450        vipw
chown       from        lptest      renice      tail        vmstat
clear       ftp         ls          reset       talk        vplot
crtplot     gigiplot    mach        rlogin      tcopy       w
df          groups      mail        rsh         tek         wc
du          head        mkstr       ruptime     telnet      whereis
dumbplot    hostid      more        rusage      test        whoami
e           hostname    netstat     rwho        tftp        whois
echo        hp7221plot  page        script      touch       xstr
edit        hpplot      pagesize    sed         tr
ex          implot      plot        shutdown    tset

This stuff will never go away and users are stuck trying to figure out why
/usr/ucb/cc exists on some systems and not on others.

[1] I still have Solaris 2.5.1 on x86 running somewhere and perhaps a copy
of SCO ODT 3 but I won't go digging into manpages there. Too much like

Dennis Clarke
dclarke at opensolaris.ca  <- Email related to the open source Solaris
dclarke at blastwave.org   <- Email related to open source for Solaris

More information about the gmp-bugs mailing list