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.
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to