public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* Fix building with linuxthreads/--without-__thread on ia64
@ 2004-08-10 23:55 Andreas Schwab
  2004-08-13  5:45 ` Ulrich Drepper
  0 siblings, 1 reply; 4+ messages in thread
From: Andreas Schwab @ 2004-08-10 23:55 UTC (permalink / raw)
  To: libc-hacker

When building libc_pic_lite.so in linuxthreads there is an undefined
reference to __res_initstamp in res_init.os which would normally be
resolved with res_libc.os, but the latter is explicitly removed from the
link.  Since __res_initstamp is hidden you'll get a @gprel reference which
is not allowed in shared libraries.  Solved by moving the definition of
__res_initstamp to res_init.c

Andreas.

2004-08-11  Andreas Schwab  <schwab@suse.de>

	* resolv/res_libc.c: Move definition of __res_initstamp ...
	* resolv/res_init.c: ... here.

--- resolv/res_init.c	06 Aug 2004 11:20:18 +0200	1.37
+++ resolv/res_init.c	11 Aug 2004 01:34:19 +0200	
@@ -106,6 +106,10 @@ static u_int32_t net_mask __P((struct in
 # define isascii(c) (!(c & 0200))
 #endif
 
+#ifdef _LIBC
+unsigned long long int __res_initstamp attribute_hidden;
+#endif
+
 /*
  * Resolver state default settings.
  */
@@ -162,7 +166,6 @@ __res_vinit(res_state statp, int preinit
 	int dots;
 #endif
 #ifdef _LIBC
-	extern unsigned long long int __res_initstamp attribute_hidden;
 	statp->_u._ext.initstamp = __res_initstamp;
 #endif
 
--- resolv/res_libc.c	07 Aug 2004 09:30:08 +0200	1.20
+++ resolv/res_libc.c	11 Aug 2004 01:32:56 +0200	
@@ -28,7 +28,7 @@
    out) since res_init() should go into libc.so but the rest of that
    file should not.  */
 
-unsigned long long int __res_initstamp attribute_hidden;
+extern unsigned long long int __res_initstamp attribute_hidden;
 /* We have atomic increment operations on 64-bit platforms.  */
 #if __WORDSIZE == 64
 # define atomicinclock(lock) (void) 0

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Fix building with linuxthreads/--without-__thread on ia64
  2004-08-10 23:55 Fix building with linuxthreads/--without-__thread on ia64 Andreas Schwab
@ 2004-08-13  5:45 ` Ulrich Drepper
  2004-08-13  7:14   ` Jakub Jelinek
  0 siblings, 1 reply; 4+ messages in thread
From: Ulrich Drepper @ 2004-08-13  5:45 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: libc-hacker

Applied.

-- 
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Fix building with linuxthreads/--without-__thread on ia64
  2004-08-13  5:45 ` Ulrich Drepper
@ 2004-08-13  7:14   ` Jakub Jelinek
  2004-08-13  7:56     ` Ulrich Drepper
  0 siblings, 1 reply; 4+ messages in thread
From: Jakub Jelinek @ 2004-08-13  7:14 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Andreas Schwab, libc-hacker

On Thu, Aug 12, 2004 at 10:44:37PM -0700, Ulrich Drepper wrote:
> Applied.

This is not enough.
I have
http://sources.redhat.com/ml/libc-hacker/2004-08/msg00015.html
and
http://sources.redhat.com/ml/libc-hacker/2004-08/msg00022.html
in my tree to cure this problem instead.

If __res_initstamp is moved to res-init.c instead, still the
msg00022.html patch needs to be applied (though it doesn't apply
cleanly, so I'm attaching a new one):

2004-08-09  Jakub Jelinek  <jakub@redhat.com>

	* libc-tsd.c: Move resolv.h include before the #if.
	(__res_maybe_init): New function.  Add libc_hidden_def.

--- libc/linuxthreads/libc-tsd.c.jj	2004-08-13 09:10:49.000000000 +0200
+++ libc/linuxthreads/libc-tsd.c	2004-08-13 09:11:55.416058909 +0200
@@ -1,5 +1,5 @@
 /* Special hack used to build link-time libc.so object for linking libpthread.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -18,13 +18,13 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <tls.h>
+#include <resolv.h>
 
 #if ! USE___THREAD
 
 /* Special hack used to build link-time libc.so object for linking libpthread.
    See Makefile comments near libc_pic_lite.os rule for what this is for.  */
 
-# include <resolv.h>
 # undef _res
 
 int _errno;
@@ -32,3 +32,10 @@ int _h_errno;
 struct __res_state _res;
 
 #endif
+
+int
+__res_maybe_init (res_state resp, int preinit)
+{
+  return -1;
+}
+libc_hidden_def (__res_maybe_init)


	Jakub

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Fix building with linuxthreads/--without-__thread on ia64
  2004-08-13  7:14   ` Jakub Jelinek
@ 2004-08-13  7:56     ` Ulrich Drepper
  0 siblings, 0 replies; 4+ messages in thread
From: Ulrich Drepper @ 2004-08-13  7:56 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: libc-hacker

Applied.

-- 
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-08-13  7:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-10 23:55 Fix building with linuxthreads/--without-__thread on ia64 Andreas Schwab
2004-08-13  5:45 ` Ulrich Drepper
2004-08-13  7:14   ` Jakub Jelinek
2004-08-13  7:56     ` Ulrich Drepper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).