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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.