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>