Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Feb 2009 21:50:26 +0100
From:      Christoph Mallon <christoph.mallon@gmx.de>
To:        Ed Schouten <ed@80386.nl>, hackers@FreeBSD.ORG
Subject:   Re: Renaming all symbols in libmp(3)
Message-ID:  <49A70092.6030601@gmx.de>
In-Reply-To: <20090226204243.GA96251@zim.MIT.EDU>
References:  <20090226180756.GX19161@hoeg.nl> <20090226204243.GA96251@zim.MIT.EDU>

next in thread | previous in thread | raw e-mail | index | archive | help
David Schultz schrieb:
> On Thu, Feb 26, 2009, Ed Schouten wrote:
>> One of the reasons why we can't compile the base system yet, is because
>> some applications in the base system (keyserv, newkey, chkey, libtelnet)
>> won't compile, because a library they depend (libmp)on has a function
>> called pow(). By default, LLVM has a built-in prototype of pow(),
>> similar to GCC. Unlike GCC, LLVM raises a compiler error by default. The
>> manual page also mentions this issue.
> 
> I think most apps that used to use libmp have transitioned to
> libgmp, so I don't have much of an opinion on this change...
> 
> However, if the compiler as a builtin for the math.h-style pow()
> function, and the builtin causes it to choke even when math.h
> isn't #included, that's a bug in the compiler. The people who are
> proposing that we make the base system LLVM-compatible should be
> more forceful in insisting that LLVM be fixed. ;-) What do the LLVM
> folks propose to do about all the (perfectly legal) programs out
> there that have a variable called 'exp'?

No, it's invalid code to have a function named pow() in a hosted 
environment which is not /The/ pow().
Having a *local* variable named exp is fine, because this declaration 
shadows the function. A *global* variable on the other hand is not allowed.



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