bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ANNOUNCE: (os, library, function) database


From: Bruno Haible
Subject: ANNOUNCE: (os, library, function) database
Date: Thu, 22 Feb 2007 06:07:15 +0100
User-agent: KMail/1.5.4

Hi,

Now that sourceforge compilefarm disappeared, we need other ways to
estimate the portability of POSIX functions.

Also, the question "is this or that substitute still needed?" is asked
over and over again, and autoconf has no means to answer this question,
except if you collect the config.status files from various platforms.

As a stopgap measure you find at
    http://www.haible.de/bruno/gnu/various-symlists.tar.gz
the lists of exported symbols of the most important libraries of more
than 20 systems.

It answers the question about "which platforms lack ftruncate" like this:

$ for os in *; do if ! grep '^ftruncate' $os/* ; then echo "$os: 
***MISSING***"; fi; done
aix-4.3.2/libc:ftruncate64
aix-5.1.0/libc:ftruncate64
beos/libroot:ftruncate
cygwin/libc:ftruncate
cygwin/libcygwin:ftruncate
freebsd-5.2.1/libc:ftruncate
freebsd-6.0/libc:ftruncate
hpux-11.00/libc:ftruncate
hpux-11.00/libc:ftruncate64
hpux-11.11/libc:ftruncate
hpux-11.11/libc:ftruncate64
irix-6.5/libc:ftruncate
irix-6.5/libc:ftruncate64
macosx-10.3/libc:ftruncate
mingw: ***MISSING***
netbsd-3.0/libc:ftruncate
openbsd-3.8/libc:ftruncate
osf1-4.0d/libc:ftruncate
osf1-5.1a/libc:ftruncate
solaris-2.10/libc:ftruncate
solaris-2.10/libc:ftruncate64
solaris-2.4/libc:ftruncate
solaris-2.5.1/libc:ftruncate
solaris-2.6/libc:ftruncate
solaris-2.6/libc:ftruncate64
solaris-2.7/libc:ftruncate
solaris-2.7/libc:ftruncate64
solaris-2.8/libc:ftruncate
solaris-2.8/libc:ftruncate64
solaris-2.9/libc:ftruncate
solaris-2.9/libc:ftruncate64

Or, it tells you in which library to find the 'pow' function:

$ grep '^pow$' */*
aix-4.3.2/libm:pow
aix-5.1.0/libm:pow
aix-5.1.0/libm:pow
beos/libroot:pow
cygwin/libcygwin:pow
cygwin/libm:pow
freebsd-5.2.1/libm:pow
freebsd-6.0/libm:pow
hpux-11.00/libm:pow
hpux-11.11/libm:pow
irix-6.5/libm:pow
macosx-10.3/libc:pow
mingw/libcrtdll:pow
mingw/libmsvcr70:pow
mingw/libmsvcr71:pow
mingw/libmsvcrt:pow
netbsd-3.0/libm:pow
openbsd-3.8/libm:pow
osf1-4.0d/libm:pow
osf1-5.1a/libm:pow
solaris-2.10/libm:pow
solaris-2.4/libm:pow
solaris-2.5.1/libm:pow
solaris-2.6/libm:pow
solaris-2.7/libm:pow
solaris-2.8/libm:pow
solaris-2.9/libm:pow

If you care about a system not listed here, it's easy to add output for it:
Just do
  $ cd /usr/lib
  $ for f in libc.so libm.so librt.so [list of important libraries]
    do
      nm $f > /tmp/nm-$f
    done
and send me the resulting files, together with the output of `config.guess`
for identification. I will then extract the symbol list from the "nm"
output and add it to the database.

CAUTION: Using nm is not as reliable as an autoconf test. It doesn't detect
functions that are renamed through macros or compiler magic (see e.g. the
ftruncate example above on AIX). It also doesn't detect stub functions or
deficient functions.

                            Bruno





reply via email to

[Prev in Thread] Current Thread [Next in Thread]