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

Bug#667447: "common.o" not included in "dllsdlgfxstub.so"



Le 18/06/2012 00:27, Florent Monnier a écrit :
> In the current ocamlsdl the libs "libsdlgfxstub.a" and "dllsdlgfxstub.so" uses 
> functions that are defined in "common.c" but these libs are built without 
> "common.o".
> 
> Now the module "Sdlgfx" in made to work with "Sdlvideo" which stub is built 
> with "common.o", so the fact that some symbols are missing in gfx's stub is 
> hidden.

IIUC: Sdlgfx depends on Sdlvideo, and common.o is built in Sdlvideo's
stub (-lsdlstub) and used by Sdlgfx (-lsdlgfxstub). It looks fine to me
without the patch, then. Moreover, it looks like the patch duplicates
common.o (in -lsdlstub and in -lsdlgfxstub), which is actually bad.

> Also gfx's .so doesn't seem to be linked with video's .so.

You mean dllsdlgfxstub.so is not linked with dllsdlstub.so?

This is not grave, since all dependencies are (recursively and)
explicitly linked in by the ocaml toolchain/runtime (e.g. ocamlrun
dlopen()-s dllsdlstub.so before dllsdlgfxstub.so). The OCaml toolchain
is not aware of the asymmetry of *.so vs *.a (where there is not the
same notion of "linked with").

Looking at dllsdlgfxstub.so's undefined symbols, some also come from the
runtime which is statically linked in ocamlrun, so I don't think it's
very useful to do more than what is currently done...


Cheers,

-- 
Stéphane



Reply to: