Thread: What's wrong with glibc-devel-2.2

What's wrong with glibc-devel-2.2

From
pgsql-bugs@postgresql.org
Date:
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

Re: What's wrong with glibc-devel-2.2

From
Tom Lane
Date:
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

Re: What's wrong with glibc-devel-2.2

From
Lamar Owen
Date:
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

Re: What's wrong with glibc-devel-2.2

From
Tom Lane
Date:
<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

Re: What's wrong with glibc-devel-2.2

From
Tom Lane
Date:
<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

Re: What's wrong with glibc-devel-2.2

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

>
> 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
>

Re: What's wrong with glibc-devel-2.2

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