Re: Re: Problem with bootstrap today (10/29/03 14:00)
Marc Giger <[email protected]>
| Newsgroups | gmane.linux.gentoo.alpha |
|---|---|
| Message-ID | <[email protected]> |
> > Assembler messages:
> > linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S: 63: Error:
> > can't resolve
> > '0' {.text section} - 'L0' {.text section}
> > ...
> > sys-libs/glibc-2.3.2-r1 failed.
>
> The problem here is that you're using a newer version of gcc than
> expected. (Not that this is your fault; it's probably a problem in
> bootstrap.sh or in KEYWORDS). The versions of glibc in the portage
> tree have some bad assembly which compiles with the older gcc but not
> wiht the newer gcc.
>
> Originally I "fixed" this problem by demoting the stable version of
> glibc on alpha. This was a bad idea, though, because it broke lots of
> existing installations when glibc downgraded.
>
> The alternative fix was to restrict the version of gcc. This is a
> safer fix. In reality we're just waiting for the most recent glibc
> fixes to hit the portage tree since they solve the assembly problems.
I have found a fix for that... On my machine I have installed gcc 3.3.2
and glibc 2.3.2-r7 with the little patch.
Attached the patches for glibc-2.3.2-r7. But I don't remember exactly if
both of them are needed.
greets
Marc
--
[email protected] mailing list
crti-alpha.patch
(text/x-diff, 5.2 KB)
The assembler now automatically generates .eh_frame information
from mdebug frame directives. Which is normally cool, except
for the case of _init and _fini.
Committed.
r~
* sysdeps/alpha/elf/initfini.c: Avoid .ent/.end.
* linuxthreadssysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
Index: linuxthreads/sysdeps/alpha/elf/pt-initfini.c
===================================================================
RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/alpha/elf/pt-initfini.c,v
retrieving revision 1.2
diff -c -p -d -r1.2 pt-initfini.c
*** linuxthreads/sysdeps/alpha/elf/pt-initfini.c 9 Feb 2002 01:56:09 -0000 1.2
--- linuxthreads/sysdeps/alpha/elf/pt-initfini.c 5 Jul 2003 22:53:48 -0000
*************** __asm__ (" \n\
*** 45,62 ****
/*@_init_PROLOG_BEGINS*/ \n\
.section .init, \"ax\", @progbits \n\
.globl _init \n\
! .ent _init \n\
_init: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
- .prologue 1 \n\
jsr $26, __pthread_initialize_minimal \n\
ldq $29, 8($30) \n\
.align 3 \n\
- .end _init \n\
- .size _init, 0 \n\
/*@_init_PROLOG_ENDS*/ \n\
\n\
/*@_init_EPILOG_BEGINS*/ \n\
--- 45,60 ----
/*@_init_PROLOG_BEGINS*/ \n\
.section .init, \"ax\", @progbits \n\
.globl _init \n\
! .type _init,@function \n\
! .usepv _init,std \n\
_init: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
jsr $26, __pthread_initialize_minimal \n\
ldq $29, 8($30) \n\
.align 3 \n\
/*@_init_PROLOG_ENDS*/ \n\
\n\
/*@_init_EPILOG_BEGINS*/ \n\
*************** _init: \n\
*** 70,76 ****
/*@_fini_PROLOG_BEGINS*/ \n\
.section .fini, \"ax\", @progbits \n\
.globl _fini \n\
! .ent _fini \n\
_fini: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
--- 68,75 ----
/*@_fini_PROLOG_BEGINS*/ \n\
.section .fini, \"ax\", @progbits \n\
.globl _fini \n\
! .type _fini,@function \n\
! .usepv _fini,std \n\
_fini: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
*************** _fini: \n\
*** 78,85 ****
stq $29, 8($30) \n\
.prologue 1 \n\
.align 3 \n\
- .end _fini \n\
- .size _fini, 0 \n\
/*@_fini_PROLOG_ENDS*/ \n\
\n\
/*@_fini_EPILOG_BEGINS*/ \n\
--- 77,82 ----
Index: sysdeps/alpha/elf/initfini.c
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/alpha/elf/initfini.c,v
retrieving revision 1.2
diff -c -p -d -r1.2 initfini.c
*** sysdeps/alpha/elf/initfini.c 9 Feb 2002 01:58:16 -0000 1.2
--- sysdeps/alpha/elf/initfini.c 5 Jul 2003 22:53:51 -0000
***************
*** 1,5 ****
/* Special .init and .fini section support for Alpha.
! Copyright (C) 2001, 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
--- 1,5 ----
/* Special .init and .fini section support for Alpha.
! Copyright (C) 2001, 2002, 2003 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
*************** __asm__ (" \n\
*** 45,65 ****
/*@_init_PROLOG_BEGINS*/ \n\
.section .init, \"ax\", @progbits \n\
.globl _init \n\
! .ent _init \n\
_init: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
lda $27, __gmon_start__ \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
- .prologue 1 \n\
beq $27, 1f \n\
jsr $26, ($27), __gmon_start__ \n\
ldq $29, 8($30) \n\
.align 3 \n\
1: \n\
- .end _init \n\
- .size _init, 0 \n\
/*@_init_PROLOG_ENDS*/ \n\
\n\
/*@_init_EPILOG_BEGINS*/ \n\
--- 45,63 ----
/*@_init_PROLOG_BEGINS*/ \n\
.section .init, \"ax\", @progbits \n\
.globl _init \n\
! .type _init, @function \n\
! .usepv _init, std \n\
_init: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
lda $27, __gmon_start__ \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
beq $27, 1f \n\
jsr $26, ($27), __gmon_start__ \n\
ldq $29, 8($30) \n\
.align 3 \n\
1: \n\
/*@_init_PROLOG_ENDS*/ \n\
\n\
/*@_init_EPILOG_BEGINS*/ \n\
*************** _init: \n\
*** 73,88 ****
/*@_fini_PROLOG_BEGINS*/ \n\
.section .fini, \"ax\", @progbits \n\
.globl _fini \n\
! .ent _fini \n\
_fini: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
- .prologue 1 \n\
.align 3 \n\
- .end _fini \n\
- .size _fini, 0 \n\
/*@_fini_PROLOG_ENDS*/ \n\
\n\
/*@_fini_EPILOG_BEGINS*/ \n\
--- 71,84 ----
/*@_fini_PROLOG_BEGINS*/ \n\
.section .fini, \"ax\", @progbits \n\
.globl _fini \n\
! .type _fini,@function \n\
! .usepv _fini,std \n\
_fini: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
.align 3 \n\
/*@_fini_PROLOG_ENDS*/ \n\
\n\
/*@_fini_EPILOG_BEGINS*/ \n\
pwrite.diff
(text/x-diff, 1 KB)
2003-07-29 Philip Blundell <[email protected]> * sysdeps/unix/sysv/linux/alpha/syscalls.list (pread): Syscall name is pread, not pread64. (pwrite): Likewise vs pwrite64. --- sysdeps/unix/sysv/linux/alpha/syscalls.list 24 Jun 2003 16:26:34 -0000 1.59 +++ sysdeps/unix/sysv/linux/alpha/syscalls.list 29 Jul 2003 19:23:02 -0000 @@ -22,8 +22,8 @@ llseek EXTRA lseek C:3 __libc_lseek __lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64 lseek llseek - posix_fadvise64 - fadvise64 4 posix_fadvise64 posix_fadvise -pread - pread64 C:4 __libc_pread __libc_pread64 __pread pread __pread64 pread64 -pwrite - pwrite64 C:4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 +pread - pread C:4 __libc_pread __libc_pread64 __pread pread __pread64 pread64 +pwrite - pwrite C:4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 fstatfs - fstatfs i:ip __fstatfs fstatfs __fstatfs64 fstatfs64 statfs - statfs i:sp __statfs statfs statfs64 getrlimit - getrlimit 2 __getrlimit getrlimit getrlimit64