Software
www.skarnet.org

Frequently Asked Questions (with answers !) about skarnet.org software

How can I compile the software with an alternative compiler or libc ?

Edit the conf-compile/conf-cc, conf-compile/conf-dynld and conf-compile/conf-ld files. The first line of these files should contain the command which will be used to compile the software (respectively link shared libraries and link executables).
For instance, if you're a Linux user and want to compile skarnet.org software with the
dietlibc instead of the GNU libc, you can perform

  echo diet -Os gcc > conf-compile/conf-cc
  echo diet -Os gcc -s > conf-compile/conf-ld 

before compiling the package. I recommend this, or using the uClibc, to any Linux user, because the glibc is needlessly complex for the software you'll find on this site and does not even support static linking anymore.

The software does not compile under OpenBSD ! Why ?

There is a bug in the strip binary, in OpenBSD up to 3.2, which prevents the skarnet.org packages from building out-of-the-box. The bug has been corrected in OpenBSD-3.3. If you can't upgrade, you can prevent the libraries from being stripped:

 echo > conf-compile/conf-striplibs 

The build should then work flawlessly.

The software does not compile under MacOS X ! Why ?

MacOS X has a very special approach to dynamic libraries, different from every other Unix. skarnet.org software makes a few assumptions about dynamic libraries (for instance, their having a .so suffix) that are not true for MacOS X.

However, if you forego dynamic linking and set the flag-allstatic flag, skarnet.org software should build and run flawlessly under MacOS X. If it's not the case, it's a bug, and you're encouraged to report it on the skaware mailing-list.

I'm getting this weird error in "./load" about an unknown --allow-shlib-undefined option...

Either you're not using GNU ld, or your GNU ld is too old and does not support this option yet. I'm sorry, but the build process has to assume you're using a recent version of GNU ld if you want to perform dynamic linking.

Either upgrade your toolchain to a later release of GNU binutils, or set the flag-allstatic flag to stop attempting to use shared libraries.

I'm getting unresolved dependencies with dynamic libraries.

Did you make sure that the skarnet.org shared libraries (that are normally exported to /library.so, unless you changed that) can be accessed by your linker? Check your /etc/ld.so.conf file. Also, did you run ldconfig after installing them?

Yes, my config is fine. I am linking against libstddjb.so and getting the following error: undefined reference to `clock_gettime'.

There are two possibilities here.

This is very different from configure/make/make install... How does the build process work ?

Well, ./configure should give you a hint, and make followed by sudo make install should work, unless you're trying to build obsolete packages. But anyway, there is a separate page explaining the details of the build process.