This is a generic bug to try and capture some of the porting problems encountered in building packages with glibc-2.1. Add yourself to the CC line if you wish to be notified of information by E-mail.
From tcltk: errno.h now has # define ENOTSUP EOPNOTSUPP which resulted in duplicate case.
All programs that use pam /usr/include/security/_pam_macros.h has extern char *strdup(const char *s); which, since glibc21 implements many string functions as macros, fails to compile.
From e2fsprogs, linux/major.h Old: #define SCSI_DISK_MAJOR 8 New: #define SCSI_DISK0_MAJOR 8
If accessing struct exit_status after #include <utmp.h>, you must add -D_GNU_SOURCE to expose the structure elements.
smtp.c:1008: warning: preprocessing directive not recognized within macro arg triggered by this code: sm_reply.length = strlen (strcpy (sm_reply.text, sm_wfp == NULL ? "no socket opened" : sm_alarmed ? "write to socket timed out" #ifdef MPOP : sm_ispool ? "error writing to spool file" #endif : "error writing to socket"));
The routine _cleanup (runs actions scheduled by atexit) is now static in the shared libc.
Accessing fds_bits (the int32 array of bits used by FD_SET and friends) is not possible unless specifying XPG4 compatibility explicitly. Meanwhile the FD_* access works just fine.
<limits.h> needs to be explicitly included.
C files formerly making stdio declarations as constants such as: FILE *foo = {stdin}, *bar = {stdout}; no longer work and should be declared as variables: FILE *foo; FILE *bar; main(){ foo = stdin; bar = stdout; }
Things that will no longer work (that did) if they are defined or declared. Any mem thing: #define mem* strpbrk: extern char *strpbrk(); register char CONST *s1; register char CONST *s2; { register int n = strlen(s2); if (! *s2) return (char *) s1; while (*s1) { if (! strncmp(s2,s1,n)) return (char *) s1; s1++; } return((char *) 0); } rewrites of string maniupulation such as:
That was supposed to be--- strpbrk: extern char *strpbrk(); register char CONST *s1; rewrites of string maniupulation such as: char * strstr(s1, s2) register char CONST *s1; register char CONST *s2; { register int n = strlen(s2); if (! *s2) return (char *) s1; while (*s1) { if (! strncmp(s2,s1,n)) return (char *) s1; s1++; } return((char *) 0); }
You need to add -D_GNU_SOURCE to get WTMPX_FILE defined.
I believe we have more or less figured out all these issues. If people have additional things to add, reopen the 'bug'.
*** Bug 2244 has been marked as a duplicate of this bug. *** I am not certain this error is due to glibc or not. I am having extreme difficulty compiling (meaning I cannot compile at all) a number of useful applications which worked flawlessly under the last distribution of redhat I used. In particular, ssh, version 1.x.x or 2.x.x will not compile at all, nor will the binary RPMS for ssh that I have found work properly.