From owner-freebsd-current Wed Feb 23 1:36:24 2000 Delivered-To: freebsd-current@freebsd.org Received: from knight.cons.org (nebula.cons.org [194.233.237.86]) by hub.freebsd.org (Postfix) with ESMTP id 9768737B64D; Wed, 23 Feb 2000 01:36:09 -0800 (PST) (envelope-from cracauer@knight.cons.org) Received: (from cracauer@localhost) by knight.cons.org (8.9.3/8.9.3) id KAA04922; Wed, 23 Feb 2000 10:00:36 +0100 (CET) Date: Wed, 23 Feb 2000 10:00:36 +0100 From: Martin Cracauer To: jdp@FreeBSD.ORG Cc: jkh@FreeBSD.ORG, current@FreeBSD.ORG, dillon@apollo.backplane.com, obrien@FreeBSD.ORG Subject: Re: extern variables in shared libraries broken (ld.so or mmap bug) Message-ID: <20000223100036.A4872@cons.org> References: <20000222100006.A13742@cons.org> <20000223093546.B4666@cons.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0i In-Reply-To: <20000223093546.B4666@cons.org>; from cracauer@cons.org on Wed, Feb 23, 2000 at 09:35:47AM +0100 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG [CC'ed David, since the new compiler seems to cause the problems] Sorry for the update bombing, but I found that the file where the tzname symbol is being defined in triggers this error mesage in a `make world`: cc -fpic -DPIC -O -pipe -DLIBC_RCS -DSYSLIBC_RCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DINET6 -DPOSIX_MISTAKE -I/usr/src/lib/libc/../libc/locale -DBROKEN_DES -DYP -I/usr/obj/usr/src/i386/usr/include -c /usr/src/lib/libc/../libc/stdtime/localtime.c -o localtime.So {standard input}: Assembler messages: {standard input}:87: Warning: warning: unrecognized characters `@GOTOFF' in expression {standard input}:114: Warning: warning: unrecognized characters `@GOTOFF' in expression The assembler code looks like this (not that it is surrounding the symbol we have problems with): .L18: leal (%edi,%edi,4),%edx leal 1868+lclmem@GOTOFF(%ebx),%eax <<< [1] leal (%eax,%edx,4),%edx movl tzname@GOT(%ebx),%esi movl 4(%edx),%ecx sall $2,%ecx movl %ebx,%eax addl 8(%edx),%eax addl $6988+lclmem@GOTOFF,%eax <<< [2] movl %eax,(%ecx,%esi) incl %edi movl -4(%ebp),%eax cmpl 8(%eax),%edi jl .L18 Note that 'as' complains about [2], [1] is fine. I'm not that familar with gas syntax, but it seems to be that this is a syntax error generated by the new gcc, that @GOTOFF must be passed one argument. /usr/src/contrib/gcc/config/i386/i386.c:2988 seems to be the line that writes the GOTOFF without an argument. Martin -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer http://www.cons.org/cracauer/ Tel.: (private) +4940 5221829 Fax.: (private) +4940 5228536 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message