[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Experimental C unit test suite available for hacking

Hi Yann,

FWIW I've found a very good explanation of what's going on during linking and why the library order in static linking is so important.

On 05/24/2018 12:00 PM, Yann Ylavic wrote:
Looks like the right order to me, however it fails with shared modules
because "server/core.c" (in libmain) uses ap_set_etag() function from
"modules/http/http_etag.c" (in BUILTIN_LIBS's libmod_http).

This could indicate that the default_handler() function which calls ap_set_etag() should better be moved to some file in modules/http/. Of course that opens a totally different can of worms...

I think "core" shouldn't depend on a module (even builtin), for
instance ap_set_{last_modified,accept_range,content_length,...} also
used by the core are defined in "server/protocol.c".


Well, first things first. Let's first fix trunk to be buildable again on build systems that really only link the needed symbols and thus rely on the correct library order during linking.