Control: tag -1 +confirmed Hi Guillem,
Need some help here. Guillem Jover <gjo...@sipwise.com> writes: > Package: librem0 > Version: 0.4.7-1 > Severity: serious > > Hi! > > This package provides a shared library that is not self-contained, and > it is missing a run-time dependency on libre0, as it uses some of its > symbols. The library should link against all libraries it uses directly, > because otherwise it is pushing an internal implementation detail towards > its users. > > A very simple example to illustrate: > > $ echo 'int main() { return 0; }' >rem.c > $ gcc -o rem rem.c -lrem > [ lots of undefined references to missing symbols… ] > > I guess there's just a «-lre» missing somewhere in the build system. Actually there was -lre in Makefile but I did slight modification as seen below and the error was gone diff --git a/Makefile b/Makefile index 248569a..761fc53 100644 --- a/Makefile +++ b/Makefile @@ -82,7 +82,7 @@ all: $(SHARED) $(STATIC) $(SHARED): $(OBJS) @echo " LD $@" - @$(LD) $(LFLAGS) $(SH_LFLAGS) $^ -L$(LIBRE_SO) -lre $(LIBS) -o $@ + @$(LD) $(LFLAGS) $(SH_LFLAGS) $^ -L$(LIBRE_SO) $(LIBS) -o $@ -lre $(STATIC): $(OBJS) Just moved -lre to the last part and replaced the package installed librem.so.0 and the mentioned example compiled fine. I'm confused on the above line, does the linker flag position on command line matters?. I would be happy to mention this to upstream.