Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Feb 2000 10:00:36 +0100
From:      Martin Cracauer <cracauer@cons.org>
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>
In-Reply-To: <20000223093546.B4666@cons.org>; from cracauer@cons.org on Wed, Feb 23, 2000 at 09:35:47AM %2B0100
References:  <20000222100006.A13742@cons.org> <20000223093546.B4666@cons.org>

next in thread | previous in thread | raw e-mail | index | archive | help
[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 <cracauer@cons.org> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000223100036.A4872>