SunOS 4.x, Solaris 2.x y HP-UX

Bajo SunOS 4.x, Solaris 2.x y HP-UX, los ficheros objetos pueden crearse complando el código fuente con parametros especiales del compilador, con lo que se produce una biblioteca compartida. Los pasos necesarios en HP-UX son como sigue. El parametro +z hace que el compilador de C de HP-UX produzca el denominado "Codigo independiente de la posición", ("Position Independent Code", PIC), y el parametro +u elimina algunas restricciones que normalmente son necesarias en la arquitectura PA-RISC. El fichero objeto ha de convertirse en una biblioteca compartida usando el editor de enlazado de HP-UX, con la opcion -b. Todo esto suena complicado, pero en realidad es mu simple, dado que los comandos para hacer todo esto son:

# simple HP-UX example
% cc +z +u -c foo.c
% ld -b -o foo.sl foo.o
    

Como los ficheros .so mencionados en la anterior subsección, hay que indicarle a la orden de creación de funciones que fichero es el que hay que cargar (por ejemplo, puede darle la localización de la biblioteca compartida, o fichero .sl). Bajo SunOS 4.x es algo así:

# simple SunOS 4.x example
% cc -PIC -c foo.c
% ld -dc -dp -Bdynamic -o foo.so foo.o
    
y bajo Solaris 2.x es:
# simple Solaris 2.x example
% cc -K PIC -c foo.c
% ld -G -Bdynamic -o foo.so foo.o
    
o
# simple Solaris 2.x example
% gcc -fPIC -c foo.c
% ld -G -Bdynamic -o foo.so foo.o
    

Cuando enlace bibliotecas compartidas, puede tener que especificar bibliotecas compartidas adicionales (normalemente bibliotecas de sistema, como las bibliotecas de C y matemáticas) en la linea de ordenes de ld