* [PATCH] Fix Alpha build
@ 2002-08-04 14:53 Jakub Jelinek
2002-08-04 15:28 ` [PATCH] Fix IA-64 build Jakub Jelinek
2002-08-04 17:38 ` [PATCH] Fix Alpha build Ulrich Drepper
0 siblings, 2 replies; 6+ messages in thread
From: Jakub Jelinek @ 2002-08-04 14:53 UTC (permalink / raw)
To: Ulrich Drepper; +Cc: Glibc hackers
Hi!
The following patch makes alpha glibc build (and not end
up with:
/usr/src/redhat/BUILD/glibc-2.2.90/build-alpha-linux/libc.so.6.1: undefined reference to `__GI___wcstoull_internal'
/usr/src/redhat/BUILD/glibc-2.2.90/build-alpha-linux/libc.so.6.1: undefined reference to `__GI_globfree'
/usr/src/redhat/BUILD/glibc-2.2.90/build-alpha-linux/libc.so.6.1: undefined reference to `__GI_____strtoull_l_internal'
/usr/src/redhat/BUILD/glibc-2.2.90/build-alpha-linux/libc.so.6.1: undefined reference to `__GI___strtoull_internal'
/usr/src/redhat/BUILD/glibc-2.2.90/build-alpha-linux/libc.so.6.1: undefined reference to `__GI___strtoll_internal'
/usr/src/redhat/BUILD/glibc-2.2.90/build-alpha-linux/libc.so.6.1: undefined reference to `__GI_glob'
).
The important thing is that when playing games like
various sysdeps/wordsize-64/*.c routines do, ie. #define foo bar
#include <something.c>
#undef foo
*_alias(baz, foo)
libc_hidden_{def,weak} (foo) cannot be used, because there is no
libc_hidden_proto (foo) in this case. Instead, libc_hidden_ver should be
used, or alternatively all this ugly magic could go away if
asm_weak_alias and asm_strong_alias macros are introduced and used in this
case (macros which would do th same as non-asm_ variants, but in
pure assembly, so it wouldn't matter that the 2 functions have different
prototypes).
IA-64 doesn't build either (even with this patch), will look into it tomorrow morning.
2002-08-04 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/glob.c (glob, globfree): Only use libc_hidden_def
if glob resp. globfree are not macros.
* sysdeps/gnu/glob64.c (globfree64): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/alpha/glob.c (glob, globfree, globfree64):
Add libc_hidden_ver.
* sysdeps/unix/sysv/linux/i386/glob64.c (globfree64): Add
libc_hidden_def.
* sysdeps/wordsize-64/glob.c (globfree64): Use libc_hidden_ver
instead of libc_hidden_weak.
* sysdeps/wordsize-64/strtol.c (__strtoll_internal): Use
libc_hidden_ver instead of libc_hidden_def.
* sysdeps/wordsize-64/wcstol.c (__wcstoll_internal): Use
libc_hidden_ver instead of libc_hidden_def.
(wcstoll, wcstoq): Remove libc_hidden_weak.
* sysdeps/wordsize-64/strtol_l.c (____strtoll_l_internal): Add
libc_hidden_ver.
* sysdeps/wordsize-64/strtoul.c (__strtoull_internal): Add
libc_hidden_ver.
* sysdeps/wordsize-64/strtoul_l.c (____strtoull_l_internal): Add
libc_hidden_ver.
* sysdeps/wordsize-64/wcstoul.c (__wcstoull_internal): Add
libc_hidden_ver.
--- libc/sysdeps/generic/glob.c.jj 2002-08-04 20:23:24.000000000 +0200
+++ libc/sysdeps/generic/glob.c 2002-08-04 20:57:22.000000000 +0200
@@ -1064,7 +1064,7 @@ glob (pattern, flags, errfunc, pglob)
return 0;
}
-#ifdef _LIBC
+#if defined _LIBC && !defined glob
libc_hidden_def (glob)
#endif
@@ -1085,7 +1085,7 @@ globfree (pglob)
free ((__ptr_t) pglob->gl_pathv);
}
}
-#ifdef _LIBC
+#if defined _LIBC && !defined globfree
libc_hidden_def (globfree)
#endif
--- libc/sysdeps/gnu/glob64.c.jj 2001-02-16 11:46:40.000000000 +0100
+++ libc/sysdeps/gnu/glob64.c 2002-08-04 21:07:22.000000000 +0200
@@ -20,3 +20,5 @@
#define COMPILE_GLOB64 1
#include <sysdeps/generic/glob.c>
+
+libc_hidden_def (globfree64)
--- libc/sysdeps/unix/sysv/linux/alpha/glob.c.jj 2001-08-23 18:50:48.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/alpha/glob.c 2002-08-04 21:45:03.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2002 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
@@ -44,6 +44,9 @@ extern void __new_globfree (glob_t *__pg
versioned_symbol (libc, __new_glob, glob, GLIBC_2_1);
versioned_symbol (libc, __new_globfree, globfree, GLIBC_2_1);
+libc_hidden_ver (__new_glob, glob)
+libc_hidden_ver (__new_globfree, globfree)
weak_alias (__new_glob, glob64)
weak_alias (__new_globfree, globfree64)
+libc_hidden_ver (__new_globfree, globfree64)
--- libc/sysdeps/unix/sysv/linux/i386/glob64.c.jj 2001-02-16 11:46:40.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/i386/glob64.c 2002-08-04 21:14:35.000000000 +0200
@@ -23,6 +23,8 @@
#include "shlib-compat.h"
+libc_hidden_def (globfree64)
+
versioned_symbol (libc, __glob64, glob64, GLIBC_2_2);
#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
--- libc/sysdeps/wordsize-64/glob.c.jj 2002-08-04 20:23:29.000000000 +0200
+++ libc/sysdeps/wordsize-64/glob.c 2002-08-04 21:44:23.000000000 +0200
@@ -5,4 +5,4 @@
#undef globfree64
weak_alias (glob, glob64)
weak_alias (globfree, globfree64)
-libc_hidden_weak (globfree64)
+libc_hidden_ver (globfree, globfree64)
--- libc/sysdeps/wordsize-64/strtol.c.jj 2002-08-04 20:23:29.000000000 +0200
+++ libc/sysdeps/wordsize-64/strtol.c 2002-08-04 21:45:55.000000000 +0200
@@ -9,6 +9,6 @@
#undef strtoll
#undef strtoq
strong_alias (__strtol_internal, __strtoll_internal)
-libc_hidden_def (__strtoll_internal)
+libc_hidden_ver (__strtol_internal, __strtoll_internal)
weak_alias (strtol, strtoll)
weak_alias (strtol, strtoq)
--- libc/sysdeps/wordsize-64/wcstol.c.jj 2002-08-04 20:23:29.000000000 +0200
+++ libc/sysdeps/wordsize-64/wcstol.c 2002-08-04 21:46:24.000000000 +0200
@@ -9,8 +9,6 @@
#undef wcstoll
#undef wcstoq
strong_alias (__wcstol_internal, __wcstoll_internal)
-libc_hidden_def (__wcstoll_internal)
+libc_hidden_ver (__wcstol_internal, __wcstoll_internal)
weak_alias (wcstol, wcstoll)
-libc_hidden_weak (wcstoll)
weak_alias (wcstol, wcstoq)
-libc_hidden_weak (wcstoq)
--- libc/sysdeps/wordsize-64/strtol_l.c.jj 2001-01-05 22:58:22.000000000 +0100
+++ libc/sysdeps/wordsize-64/strtol_l.c 2002-08-04 21:48:34.000000000 +0200
@@ -7,4 +7,5 @@
#undef ____strtoll_l_internal
#undef __strtoll_l
strong_alias (____strtol_l_internal, ____strtoll_l_internal)
+libc_hidden_ver (____strtol_l_internal, ____strtoll_l_internal)
weak_alias (__strtol_l, __strtoll_l)
--- libc/sysdeps/wordsize-64/strtoul.c.jj 2001-01-05 22:58:22.000000000 +0100
+++ libc/sysdeps/wordsize-64/strtoul.c 2002-08-04 22:22:26.000000000 +0200
@@ -9,5 +9,6 @@
#undef strtoull
#undef strtouq
strong_alias (__strtoul_internal, __strtoull_internal)
+libc_hidden_ver (__strtoul_internal, __strtoull_internal)
weak_alias (strtoul, strtoull)
weak_alias (strtoul, strtouq)
--- libc/sysdeps/wordsize-64/strtoul_l.c.jj 2001-01-05 22:58:22.000000000 +0100
+++ libc/sysdeps/wordsize-64/strtoul_l.c 2002-08-04 21:49:44.000000000 +0200
@@ -7,4 +7,5 @@
#undef ____strtoull_l_internal
#undef __strtoull_l
strong_alias (____strtoul_l_internal, ____strtoull_l_internal)
+libc_hidden_ver (____strtoul_l_internal, ____strtoull_l_internal)
weak_alias (__strtoul_l, __strtoull_l)
--- libc/sysdeps/wordsize-64/wcstoul.c.jj 2001-01-05 22:58:22.000000000 +0100
+++ libc/sysdeps/wordsize-64/wcstoul.c 2002-08-04 21:50:41.000000000 +0200
@@ -9,5 +9,6 @@
#undef wcstoull
#undef wcstouq
strong_alias (__wcstoul_internal, __wcstoull_internal)
+libc_hidden_ver (__wcstoul_internal, __wcstoull_internal)
weak_alias (wcstoul, wcstoull)
weak_alias (wcstoul, wcstouq)
Jakub
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] Fix IA-64 build
2002-08-04 14:53 [PATCH] Fix Alpha build Jakub Jelinek
@ 2002-08-04 15:28 ` Jakub Jelinek
2002-08-04 17:07 ` Roland McGrath
2002-08-04 17:38 ` [PATCH] Fix Alpha build Ulrich Drepper
1 sibling, 1 reply; 6+ messages in thread
From: Jakub Jelinek @ 2002-08-04 15:28 UTC (permalink / raw)
To: Ulrich Drepper; +Cc: Glibc hackers
On Sun, Aug 04, 2002 at 11:53:04PM +0200, Jakub Jelinek wrote:
> IA-64 doesn't build either (even with this patch), will look into it tomorrow morning.
I believe this should fix it (bootstrap pending).
__lseek was defined in both lseek.os and llseek.os (and __llseek nowhere).
2002-08-05 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/syscalls.list (llseek): Provide
__llseek alias, not __lseek.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (llseek):
Likewise.
* manual/debug.texi (%MENU%): Remove trailing dot.
Reported by <hayastan132@hotmail.com>.
--- libc/manual/debug.texi.jj 2002-08-04 21:57:15.000000000 +0200
+++ libc/manual/debug.texi 2002-08-05 00:41:19.000000000 +0200
@@ -1,6 +1,6 @@
@node Debugging Support
@c @node Debugging Support, , Cryptographic Functions, Top
-@c %MENU% Functions to help debugging applications.
+@c %MENU% Functions to help debugging applications
@chapter Debugging support
Applications are usually debugged using dedicated debugger programs.
--- libc/sysdeps/unix/sysv/linux/ia64/syscalls.list.jj 2002-08-04 20:23:28.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/syscalls.list 2002-08-05 00:40:02.000000000 +0200
@@ -3,7 +3,7 @@
umount2 - umount 2 __umount2 umount2
# Whee! 64-bit systems naturally implement llseek.
-llseek EXTRA lseek 3 __libc_lseek64 __lseek llseek __lseek64 lseek64
+llseek EXTRA lseek 3 __libc_lseek64 __llseek llseek __lseek64 lseek64
pread - pread 4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
pwrite - pwrite 4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list.jj 2002-08-04 20:23:28.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list 2002-08-05 00:40:37.000000000 +0200
@@ -1,6 +1,6 @@
# File name Caller Syscall name # args Strong name Weak names
-llseek EXTRA lseek 3 __libc_lseek64 __lseek llseek __lseek64 lseek64
+llseek EXTRA lseek 3 __libc_lseek64 __llseek llseek __lseek64 lseek64
pread - pread 4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
pwrite - pwrite 4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64
Jakub
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix IA-64 build
2002-08-04 15:28 ` [PATCH] Fix IA-64 build Jakub Jelinek
@ 2002-08-04 17:07 ` Roland McGrath
2002-08-04 23:25 ` Jakub Jelinek
0 siblings, 1 reply; 6+ messages in thread
From: Roland McGrath @ 2002-08-04 17:07 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Ulrich Drepper, Glibc hackers
I think the better solution is for those platforms not to have both modules
at all, or have one empty. Why have two idential syscall entry points
generated? I think you would get the right result by having an empty
lseek.[cS] in sysdeps/.../ia64 to override the unix/syscalls.list definition.
It might be handy to let syscalls.list indicate an empty module with a line
instead of adding the files. i.e.:
llseek EXTRA lseek 3 __libc_lseek64 __lseek llseek __lseek64 lseek64 lseek
lseek llseek -
so if llseek.o is built according to the first line, then lseek.o will be
made a dummy object by the second line.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix Alpha build
2002-08-04 14:53 [PATCH] Fix Alpha build Jakub Jelinek
2002-08-04 15:28 ` [PATCH] Fix IA-64 build Jakub Jelinek
@ 2002-08-04 17:38 ` Ulrich Drepper
1 sibling, 0 replies; 6+ messages in thread
From: Ulrich Drepper @ 2002-08-04 17:38 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Glibc hackers
Jakub Jelinek wrote:
> The following patch makes alpha glibc build (and not end
> up with:
Thanks, I've applied it.
--
---------------. ,-. 1325 Chesapeake Terrace
Ulrich Drepper \ ,-------------------' \ Sunnyvale, CA 94089 USA
Red Hat `--' drepper at redhat.com `------------------------
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix IA-64 build
2002-08-04 17:07 ` Roland McGrath
@ 2002-08-04 23:25 ` Jakub Jelinek
2002-08-04 23:59 ` Roland McGrath
0 siblings, 1 reply; 6+ messages in thread
From: Jakub Jelinek @ 2002-08-04 23:25 UTC (permalink / raw)
To: Roland McGrath; +Cc: Ulrich Drepper, Glibc hackers
On Sun, Aug 04, 2002 at 08:07:33PM -0400, Roland McGrath wrote:
> I think the better solution is for those platforms not to have both modules
> at all, or have one empty. Why have two idential syscall entry points
> generated? I think you would get the right result by having an empty
> lseek.[cS] in sysdeps/.../ia64 to override the unix/syscalls.list definition.
> It might be handy to let syscalls.list indicate an empty module with a line
> instead of adding the files. i.e.:
>
> llseek EXTRA lseek 3 __libc_lseek64 __lseek llseek __lseek64 lseek64 lseek
> lseek llseek -
>
> so if llseek.o is built according to the first line, then lseek.o will be
> made a dummy object by the second line.
If it listed __libc_lseek, __llseek among aliases, it would work, yes.
Jakub
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix IA-64 build
2002-08-04 23:25 ` Jakub Jelinek
@ 2002-08-04 23:59 ` Roland McGrath
0 siblings, 0 replies; 6+ messages in thread
From: Roland McGrath @ 2002-08-04 23:59 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Ulrich Drepper, Glibc hackers
> If it listed __libc_lseek, __llseek among aliases, it would work, yes.
I put in the make-syscalls.sh change. Can you now send a syscalls.list
change that's verified to work on ia64 using the new syntax?
Just replace the syscall name with - for a dummy module and skip the
following fields. The second field (caller) behaves the same so
syscalls.list can say e.g. make lseek a dummy iff llseek came from that
list and was not overridden by a different sysdeps dir.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-08-05 6:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-04 14:53 [PATCH] Fix Alpha build Jakub Jelinek
2002-08-04 15:28 ` [PATCH] Fix IA-64 build Jakub Jelinek
2002-08-04 17:07 ` Roland McGrath
2002-08-04 23:25 ` Jakub Jelinek
2002-08-04 23:59 ` Roland McGrath
2002-08-04 17:38 ` [PATCH] Fix Alpha build 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).