On 19/12/10 04:08, Dan McGee wrote:
On Sat, Dec 18, 2010 at 9:58 AM, Allan McRae<[email protected]>  wrote:
All functions that are limited to the local translation unit are
declared static.  This exposed that the _pkg_get_deltas declaration
in be_local.c was being satified by the function in packages.c which
when declared static caused linker failures.

Hmm. All of these were left this way on purpose, and the deltas thing
was obviously done on purpose too.

I understand that the delta thing was done on purpose, but why are all these functions not declared static?

Fixes all warnings with -Wmissing-{declarations,prototypes}.

What do these warnings look like? Did the gold linker expose these,
I'm assuming?

This was me looking into various compiler warnings available in gcc. The warnings look like:

be_local.c:70:13: warning: no previous prototype for '_cache_get_filename' [-Wmissing-prototypes]

-Wmissing-prototypes aims to detect global functions that fail to be declared in header files. Given we probably do not want to declare those in a header file and they are restricted to that one translation unit, I figured they should all be declared static...

That resulted in:

../../lib/libalpm/.libs/libalpm.so: undefined reference to `_pkg_get_deltas'

as the _pkg_get_deltas declaration in be_local.c no longer gets satisfied by the implementation in package.c (as it is statically declared there).

Allan

Reply via email to