What's wrong with glibc-devel-2.2

Started by PostgreSQL Bugs Listalmost 25 years ago7 messagesbugs
Jump to latest
#1PostgreSQL Bugs List
pgsql-bugs@postgresql.org

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

#2Lamar Owen
lamar.owen@wgcr.org
In reply to: PostgreSQL Bugs List (#1)
Re: What's wrong with glibc-devel-2.2

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

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: PostgreSQL Bugs List (#1)
Re: What's wrong with glibc-devel-2.2

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

#4Noname
yoda@cef.org.tw
In reply to: Lamar Owen (#2)
Re: What's wrong with glibc-devel-2.2

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....:)

#5Noname
yoda@cef.org.tw
In reply to: Tom Lane (#3)
Re: What's wrong with glibc-devel-2.2

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

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noname (#5)
Re: What's wrong with glibc-devel-2.2

<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

#7Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noname (#5)
Re: What's wrong with glibc-devel-2.2

<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