These links should not be rooted, but instead use ../../ so nfs mounts work better /dev/log->/var/run/log /etc/termcap->/usr/share/misc/termcap /usr1/compat/linux/usr/lib/zoneinfo/localtime->/etc/localtime /usr/etc/mailcap->/usr/local/etc/mailcap Run this rm /dev/log ; ln -s ../var/run/log /dev/log rm /etc/termcap ; ln -s ../usr/share/misc/termcap /etc/termcap rm /usr1/compat/linux/usr/lib/zoneinfo/localtime ; ln -s ../../../../../../etc/localtime /usr1/compat/linux/usr/lib/zoneinfo/localtime rm /usr/etc/mailcap ; ln -s ../local/etc/mailcap /usr/etc/mailcap Also look at: /home/jhs/public_html/src/bsd/fixes/FreeBSD/src/gen/contrib/tcl/generic/tclInt.h->/usr/include/tcl/generic/tclInt.h /home/jhs/public_html/src/bsd/fixes/FreeBSD/src/gen/lib/libtcl/tcl.h->/usr/include/tcl.h /usr/include/machine/i4b_debug.h->/usr/src/i4b/machine/i4b_debug.h /usr/include/machine/i4b_ioctl.h->/usr/src/i4b/machine/i4b_ioctl.h /usr/include/machine/i4b_tel_ioctl.h->/usr/src/i4b/machine/i4b_tel_ioctl.h /usr/include/machine/i4b_trace.h->/usr/src/i4b/machine/i4b_trace.h /dev/rmt8->/dev/rst0 /usr/local/bin/xsetbg->/usr/local/bin/xli /usr/local/bin/xview->/usr/local/bin/xli SHARED LIBRARIES libc.a standard C library libc_p.a profiling library libc_pic.a position independent code libc.so.0.0 shared object Major Version 0, Minor Version 0 find bin sbin usr/bin usr/sbin usr/libexec -type f -exec grep -l DYNAMIC {} \; Gary's suggested order: gcc2 (libgcc_pic.a), gas, ld (fails on ldrt), libgcc_pic.a, ld, libc, world rtld: libgcc_pic TO PREVENT SHARED LIBS man ld -Bstatic -Bdynamic man gcc -static -shared gcc2; make -DNOPIC ld; make -DNOPIC LDFLAGS += -static (& to force shared libs: CFLAGS += -fpic -DPIC ) ./Makefile: NOSHARED=stacey_forced_NOSHARED_from_top_makefile NOBOOTSTRAPLD=stacey_forced_NOBOOTSTRAPLD_from_top_makefile NOPIC=stacey_forced_NOPIC_from_top_makefile PICFLAG=-Dstacey_patched_out_PICFLAG_from_top_makefile LDFLAGS+= -Dstacey_forced_LDFLAGS_static_from_top_makefile -static CFLAGS+= -Dstacey_forced_CFLAGS_static_from_top_makefile -static ./share/mk/bsd.prog.mk: CFLAGS+=${COPTS} -Dstacey_forced_static_in_bsd_prog_mk -static ./share/mk/sys.mk: LDFLAGS+= -Dstacey_forced_static_in_bsd_sys_mk_LDFLAGS -static CFLAGS+= -Dstacey_forced_static_in_bsd_sys_mk_CFLAGS -static To compile unshared: nice -20 make \ CFLAGS="-DCFLAGS_outside_top_makefile -static" \ LDFLAGS="-DLDFLAGS_outside_top_makefile -static" \ NOBOOTSTRAPLD="NOBOOTSTRAPLD_outside_top_makefile" \ NOPIC="NOPIC_outside_top_makefile" \ PICFLAG="-DPICFLAG_outside_top_makefile" \ NOSHARED="NOSHARED_outside_top_makefile" \ NOPROFILE="NOPROFILE_outside_top_makefile" \ DESTDIR=/usr/tmp/dest/sup.931203 \ -k \ world CFLAGS DESTDIR LDFLAGS NOBOOTSTRAPLD NOCLEANDIR NOPIC NOPROFILE NOSHARED PICFLAG ------------------------ Things that fail to compile using aout format, on an elf system. # ld: -lperl: no match gnu/usr.bin/perl/miniperl gnu/usr.bin/perl/perl gnu/usr.bin/perl/suidperl gnu/usr.bin/perl/x2p/a2pl # fingerd.o: Undefined symbol `_realhostname' referenced from text segment libexec/fingerd # -lskey -lmd -lcrypt -lutil # Undefined symbol `_realhostname' libexec/ftpd libexec/rexecd libexec/rlogind libexec/rshd libexec/tftpd libexec/uucpd libexec/telnetd # -lalias # Undefined symbol `_PacketAliasProxyRule' sbin/natd usr.sbin/ppp # ld -L/usr/local/lib # ld: /usr/local/lib/libX11.a(): bad magic usr.bin/doscmd # -lwrap # ld: -lwrap: no match usr.sbin/inetd usr.sbin/portmap usr.sbin/tcpdchk usr.sbin/tcpdmatch usr.sbin/sendmail