Comments on chapter 3 of FAQ - "Source and binary incompatibilities, and what to do about them"
Mike Frysinger
vapier@gentoo.org
Sat Apr 28 03:44:00 GMT 2012
On Friday 27 April 2012 18:18:06 Marek Polacek wrote:
> 3.1. I expect GNU libc to be 100% source code compatible with
> the old Linux based GNU libc. Why isn't it like this?
>
> I'd say remove.
>
> 3.2. Why does getlogin() always return NULL on my Linux box?
>
> I wouldn't say this question is frequently asked these days...
>
> 3.3. Where are the DST_* constants found in <sys/time.h> on many
> systems?
>
> Remove, I don't have such constants in <sys/time.h> at all.
SGTM
> 3.4. The prototypes for `connect', `accept', `getsockopt',
> `setsockopt', `getsockname', `getpeername', `send',
> `sendto', and `recvfrom' are different in GNU libc from
> any other system I saw. This is a bug, isn't it?
>
> Probably keep.
tweak the grammar, and the tense (since the POSIX spec has been this way for
many many years and the glibc behavior isn't "new"). mentioning the socklen_t
thing is still semi-relevant (at least, i know i've posted patches to packages
in the last year to do int->socklen_t).
> 3.5. On Linux I've got problems with the declarations in Linux
> kernel headers.
>
> Keep.
might want to trim it a bit. i think the last paragraph in particular is
still true (i know i still deal with this in packages in Gentoo).
> 3.6. I don't include any kernel headers myself but the compiler
> still complains about redeclarations of types in the kernel
> headers.
>
> Remove.
SGTM
> 3.7. Why don't signals interrupt system calls anymore?
>
> Probably keep.
tweak the tense, but yes, i think noting this is still FAQ worthy
> 3.8. I've got errors compiling code that uses certain string
> functions. Why?
>
> Keep?
i'm not sure it's needed anymore, and i rarely see anyone using those defines.
certainly any code base that adds their own prototypes in today's world (e.g.
"char strcpy();") has many other problems and generally doesn't care about
portability.
> 3.9. I get compiler messages "Initializer element not constant" with
> stdin/stdout/stderr. Why?
>
> Keep.
OK
> 3.10. I can't compile with gcc -traditional (or
> -traditional-cpp). Why?
>
> Remove.
i've only see trad-cpp in standalone projects that also want to build with
like Apple's gcc, but that's unusual. i don't think anyone cares anymore, so
we can drop.
> 3.11. I get some errors with `gcc -ansi'. Isn't glibc ANSI compatible?
>
> Keep.
yeah, i still see people using -ansi for some reason
> 3.12. I can't access some functions anymore. nm shows that they do
> exist but linking fails nevertheless.
>
> Keep.
yeah, especially since the rpc/nis code falls into this category now
> 3.13. When using the db-2 library which comes with glibc is used in
> the Perl db modules the testsuite is not passed. This did not
> happen with db-1, gdbm, or ndbm.
>
> Remove.
>
> 3.14. The pow() inline function I get when including <math.h> is broken.
> I get segmentation faults when I run the program.
>
> Remove.
>
> 3.15. The sys/sem.h file lacks the definition of `union semun'.
>
> Keep.
>
> 3.16. Why has <netinet/ip_fw.h> disappeared?
>
> Remove.
>
> 3.17. I get floods of warnings when I use -Wconversion and include
> <string.h> or <math.h>.
>
> Remove. Does not apply anymore.
SGTM
> 3.18. After upgrading to glibc 2.1, I receive errors about
> unresolved symbols, like `_dl_initial_searchlist' and can not
> execute any binaries. What went wrong?
>
> Remove.
the specific details makes sense to scuttle. but it reminds me of errors
people sometimes see when they mix libraries from different glibc versions --
runtime errors about missing GLIBC_PRIVATE symbols. might be useful to update
to cover that case.
> 3.19. bonnie reports that char i/o with glibc 2 is much slower than with
> libc5. What can be done?
>
> Remove.
>
> 3.20. Programs compiled with glibc 2.1 can't read db files made with
> glibc 2.0. What has changed that programs like rpm break?
>
> Remove.
>
> 3.21. Autoconf's AC_CHECK_FUNC macro reports that a function exists, but
> when I try to use it, it always returns -1 and sets errno to
> ENOSYS.
>
> Remove.
>
> 3.22. My program segfaults when I call fclose() on the FILE* returned
> from setmntent(). Is this a glibc bug?
>
> Keep.
>
> 3.23. I get "undefined reference to `atexit'"
>
> Keep.
SGTM
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20120428/71f6a6d9/attachment.sig>
More information about the Libc-alpha
mailing list