Renaming all symbols in libmp(3)

Daniel Eischen deischen at freebsd.org
Thu Feb 26 10:18:40 PST 2009


On Thu, 26 Feb 2009, Ed Schouten wrote:

> Hello all,
>
> As you may have read some days ago, work has started to make the FreeBSD
> base system compile better with clang, the BSD licensed C compiler from
> the LLVM project.
>
> 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.
>
> After some talking on IRC, I think the best solution would be to rename
> all functions in libmp. Even though this may sound very awful at first,
> it seems the competition has done this as well:
>
> 	http://docs.sun.com/app/docs/doc/819-2246/mp-3mp?a=view
>
> I'm not saying that if the Solaris developers jump off a cliff, we
> should do the same, but looking at the amount of applications that
> depend on libmp (almost none), I think it's the only definitive
> solution.
>
> So this is the patch I propose to commit to SVN one of these days:
>
> 	http://80386.nl/pub/mp.diff
>
> Because this also reduces some warnings when compiling stuff with GCC,
> I've increased WARNS in various Makefiles. I've also increased the
> SHLIB_MAJOR and __FreeBSD_version.

Why don't you add symbol versioning to libmp, so that old
binaries will still work, but new ones will get the new
symbols by default.  Hmm, will that work without bumping
SHLIB_MAJOR?  You might want to play around with it and
see.

-- 
DE


More information about the freebsd-hackers mailing list