What's wrong with glibc-devel-2.2
YodaWu (yoda@cef.org.tw) reports a bug with a severity of 2
The lower the number the more severe it is.
Short Description
What's wrong with glibc-devel-2.2
Long Description
This afternoon I download postgresql-7.1.tar.gz.
After I extract this tarball,enter ./configure command to config this
server.
It was always blocked at the procedure of checking accept() function.
After 5 hours of struggling I finally know the trouble source.
The version of my glibc is 2.2,but seems postgresql based on glibc 2.1.
So are there any plans of using glibc v2.2 ?
Or I just only change source code of glibc from v2.2 to v2.1 ?
It seems that glibc v2.2 is not compatible with v2.1 ,is it ?
My English is very poor,thank you for finish reading. :)
Sample Code
No file was uploaded with this report
pgsql-bugs@postgresql.org wrote:
This afternoon I download postgresql-7.1.tar.gz.
After I extract this tarball,enter ./configure command to config this
server.
It was always blocked at the procedure of checking accept() function.
After 5 hours of struggling I finally know the trouble source.
The version of my glibc is 2.2,but seems postgresql based on glibc 2.1.
So are there any plans of using glibc v2.2 ?
I have built PostgreSQL 7.1 on a system with glibc-2.2 -- Red Hat 7.1.
It works for me.
There may be something else going onwith your system -- more details of
your system configuration would be helpful.
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11
pgsql-bugs@postgresql.org writes:
The version of my glibc is 2.2,but seems postgresql based on glibc 2.1.
Say what? Postgres isn't dependent on any particular version of glibc;
in fact it runs fine on many Unixen that don't use glibc at all.
How about telling us what your problem is, rather than jumping to a
conclusion about what caused it? What we want to see is exactly what
commands you issued and exactly what error messages you got.
regards, tom lane
On Tue, 17 Apr 2001, Lamar Owen wrote:
I have built PostgreSQL 7.1 on a system with glibc-2.2 -- Red Hat 7.1.
It works for me.There may be something else going onwith your system -- more details of
your system configuration would be helpful.
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11
kernel 2.2.19
gcc 2.96
gmake 3.79.1
glibc 2.2
What else should I offer ?
Should I change the /usr/src/linux to the directory of this
kernel version ?
Thank you for your asistance....:)
On Tue, 17 Apr 2001, Tom Lane wrote:
pgsql-bugs@postgresql.org writes:
The version of my glibc is 2.2,but seems postgresql based on glibc 2.1.
Say what? Postgres isn't dependent on any particular version of glibc;
in fact it runs fine on many Unixen that don't use glibc at all.
After I change the version from 2.2 to 2.1 , this problem solved.
I think the key point is the define of accept() in 2.2.
accept() define in glibc 2.2
extern int accept (int __fd, __SOCKADDR_ARG __addr,
socklen_t *__restrict __addr_len)
__THROW;
Definition of __SOCKADDR_ARG in glibc 2.2
#if defined __cplusplus || !__GNUC_PREREQ (2, 7)
# define __SOCKADDR_ARG struct sockaddr *__restrict
# define __CONST_SOCKADDR_ARG __const struct sockaddr *
#else
Definition of __restrict in glibc 2.2
/* __restrict is known in EGCS 1.2 and above. */
#if !__GNUC_PREREQ (2,92)
# define __restrict /* Ignore */
#endif
Thank you for your asistance ....:)
Show quoted text
How about telling us what your problem is, rather than jumping to a
conclusion about what caused it? What we want to see is exactly what
commands you issued and exactly what error messages you got.regards, tom lane
<yoda@cef.org.tw> writes:
I think the key point is the define of accept() in 2.2.
accept() define in glibc 2.2
extern int accept (int __fd, __SOCKADDR_ARG __addr,
socklen_t *__restrict __addr_len)
__THROW;
Definition of __SOCKADDR_ARG in glibc 2.2
#if defined __cplusplus || !__GNUC_PREREQ (2, 7)
# define __SOCKADDR_ARG struct sockaddr *__restrict
# define __CONST_SOCKADDR_ARG __const struct sockaddr *
#else
Definition of __restrict in glibc 2.2
/* __restrict is known in EGCS 1.2 and above. */
#if !__GNUC_PREREQ (2,92)
# define __restrict /* Ignore */
#endif
Looks to me like it should work; int, struct sockaddr *, socklen_t *
are one of the combinations we try for accept() arguments. What does
config.log contain after the failure?
regards, tom lane
<yoda@cef.org.tw> writes:
I think the key point is the define of accept() in 2.2.
accept() define in glibc 2.2
extern int accept (int __fd, __SOCKADDR_ARG __addr,
socklen_t *__restrict __addr_len)
__THROW;
Definition of __SOCKADDR_ARG in glibc 2.2
#if defined __cplusplus || !__GNUC_PREREQ (2, 7)
# define __SOCKADDR_ARG struct sockaddr *__restrict
# define __CONST_SOCKADDR_ARG __const struct sockaddr *
#else
Definition of __restrict in glibc 2.2
/* __restrict is known in EGCS 1.2 and above. */
#if !__GNUC_PREREQ (2,92)
# define __restrict /* Ignore */
#endif
After staring at this a little, I wonder whether the __restrict
qualifiers might be the problem. However, my compiler (gcc 2.95.3)
does not complain about this test program:
struct sockaddr { int x; };
typedef int socklen_t;
extern int accept (int __fd, struct sockaddr *__restrict __addr,
socklen_t *__restrict __addr_len);
extern int accept (int __fd, struct sockaddr * __addr,
socklen_t * __addr_len);
int main() { return 0; }
so at least in this version of gcc, it should not be a problem to
probe for accept's argument types without worrying about __restrict.
What compiler version are you using? Does it reject the above test
program?
regards, tom lane