Re: svn commit: trunk/uClibc/ldso/ldso/sh

2008-01-15 Thread Paul Mundt
On Sat, Jan 12, 2008 at 07:06:02PM +0100, Carmelo Amoroso wrote:
 Mike Frysinger wrote:
  On Saturday 12 January 2008, [EMAIL PROTECTED] wrote:
  Author: carmelo
  Date: 2008-01-12 00:20:18 -0800 (Sat, 12 Jan 2008)
  New Revision: 20848
 
  Log:
  Make sh4 build works again adding a temporary work-around
  iby redefining __always_inline to inline until gcc 4.x.x will get
  fixed.
 
  Modified:
 trunk/uClibc/ldso/ldso/sh/dl-syscalls.h
 
  +#warning !!! __always_inline redefined waiting for the fixed gcc
  +#ifdef __always_inline
  +#undef __always_inline
  +#define __always_inline inline
  +#endif
  
  shouldnt you leverage __GNUC_PREREQ(4, 0) ?  and add information about what 
  version of gcc is actually broken ?
  -mike
  
 
 Hi Mike,
 done. I'm assuming the problem is with gcc 4.1 and later.
 
If your new compiler is sane enough to define __GNUC_STM_RELEASE__ as was
discussed before, it might be worth conditionalizing on that also. We
already do that in the kernel for some other cases..
___
uClibc mailing list
uClibc@uclibc.org
http://busybox.net/cgi-bin/mailman/listinfo/uclibc


Re: svn commit: trunk/uClibc/ldso/ldso/sh

2008-01-15 Thread Carl SHAW
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Paul Mundt wrote:
 On Sat, Jan 12, 2008 at 07:06:02PM +0100, Carmelo Amoroso wrote:
 Mike Frysinger wrote:
 On Saturday 12 January 2008, [EMAIL PROTECTED] wrote:
 Author: carmelo
 Date: 2008-01-12 00:20:18 -0800 (Sat, 12 Jan 2008)
 New Revision: 20848

 Log:
 Make sh4 build works again adding a temporary work-around
 iby redefining __always_inline to inline until gcc 4.x.x will get
 fixed.

 Modified:
trunk/uClibc/ldso/ldso/sh/dl-syscalls.h

 +#warning !!! __always_inline redefined waiting for the fixed gcc
 +#ifdef __always_inline
 +#undef __always_inline
 +#define __always_inline inline
 +#endif
 shouldnt you leverage __GNUC_PREREQ(4, 0) ?  and add information about what 
 version of gcc is actually broken ?
 -mike

 Hi Mike,
 done. I'm assuming the problem is with gcc 4.1 and later.

 If your new compiler is sane enough to define __GNUC_STM_RELEASE__ as was
 discussed before, it might be worth conditionalizing on that also. We
 already do that in the kernel for some other cases..

Yes, the new compiler does (and we will continue to in future, although
we expect to push back our changes to gcc).  We got burnt with that one
before.

Carl
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHjKtTsOYe+9JwoiQRAtq3AKCb+TDnsaYSrsHdHO9qZdtsxllO8QCfWcHz
V1meZGkqSOHcXUqjPkBMGlU=
=3XcY
-END PGP SIGNATURE-
___
uClibc mailing list
uClibc@uclibc.org
http://busybox.net/cgi-bin/mailman/listinfo/uclibc


[patch] getaddrinfo bug

2008-01-15 Thread Dan Nicolaescu

When using x11r7, starting X11 application ends up calling 
_xcb_open_tcp in libxcb.

_xcb_open_tcp looks like this:

static int _xcb_open_tcp(char *host, const unsigned short port)
{
int fd = -1;
struct addrinfo hints = { AI_ADDRCONFIG
#ifdef AI_NUMERICSERV
  | AI_NUMERICSERV
#endif
  , AF_UNSPEC, SOCK_STREAM };
[snip]
  res = getaddrinfo(host, service, hints, results);


uclibc's netdb.h always defines AI_NUMERICSERV, so AI_NUMERICSERV is
always used.

The getaddrinfo implementation in uclibc does:

if (hints-ai_flags  ~(AI_PASSIVE|AI_CANONNAME|AI_NUMERICHOST|
AI_ADDRCONFIG|AI_V4MAPPED|AI_ALL))
return EAI_BADFLAGS;

which means that getaddrinfo will always fail and return EAI_BADFLAGS
because it passes AI_NUMERICSERV.

As a result, X11 applications won't start.

This patch fixes the problem:

--- getaddrinfo.c.orig  2008-01-15 07:36:08.264317000 -0800
+++ getaddrinfo.c   2008-01-15 07:36:00.518071000 -0800
@@ -822,7 +822,7 @@
 if (hints == NULL)
hints = default_hints;

-if (hints-ai_flags  ~(AI_PASSIVE|AI_CANONNAME|AI_NUMERICHOST|
+if (hints-ai_flags  
~(AI_PASSIVE|AI_CANONNAME|AI_NUMERICHOST|AI_NUMERICSERV|
AI_ADDRCONFIG|AI_V4MAPPED|AI_ALL))
return EAI_BADFLAGS;

___
uClibc mailing list
uClibc@uclibc.org
http://busybox.net/cgi-bin/mailman/listinfo/uclibc