On Fri, 9 Apr 2021 at 02:41, Ben Pfaff <b...@cs.stanford.edu> wrote: > On Mon, Apr 5, 2021 at 3:43 PM Reuben Thomas <r...@sc3d.org> wrote: > > > > On Mon, 5 Apr 2021 at 23:36, Reuben Thomas <r...@sc3d.org> wrote: > >> > >> > >> The comment about "all the copies of relocatable.c" in progreloc.c is > surely is clue, but I cannot see how more than one copy of relocatable.c is > ever compiled… > > > > > > Finally found, in relocatable-maint.texi, "If you need more than one > module, or you need to use them with different settings, you will need > multiple copies of gnulib (@pxref{Multiple instances})." Sorry for the > noise! > > Do you think it should be better documented, or documented somewhere > else? (I'm only getting to my email now.) >
Yes, I think it could be clearer that building for a library and for a program needs different settings, i.e. that when you define IN_LIBRARY, it won't now work for a program, and therefore you need multiple copies of gnulib. This is after all likely to be a common case: you want a program to be relocatable, and it has a library which also needs to access files relocatably. While we're at it, this sentence doesn't apply to me, but it's mystifying: "For installing multiple libraries, at least one of which depends on another one, use the @code{relocatable-prog} module." Are you supposed to use relocatable-prog *and* -DIN_LIBRARY? How does using relocatable-prog help anyway? (A brief explanation of why it's necessary might aid comprehension and recall!) -- https://rrt.sc3d.org