On Thu, Dec 10, 2020 at 01:04:14AM +0300, Dmitry V. Levin wrote: > On Wed, Dec 09, 2020 at 08:55:23PM +0100, Mark Wielaard wrote: > > On Sun, 2020-12-06 at 12:49 +0100, Mark Wielaard wrote: > > > On Mon, 2020-11-30 at 21:35 +0100, Mark Wielaard wrote: > > > > On Mon, Nov 30, 2020 at 08:00:00AM +0000, Dmitry V. Levin wrote: > > > > > According to GNU Automake documentation [1], $(EXEEXT) is the > > > > > suffix > > > > > that should be used for executables, it is not applicable for > > > > > shared libraries. > > > > > > > > > > [1] > > > > > https://www.gnu.org/software/automake/manual/html_node/EXEEXT.html > > > > > > > > I think you are right and this patch is correct. This probably only > > > > affects non-posix or windows setups. Ulf (on CC now) was working on > > > > building on windows (although I think we never integrated all the > > > > patches for that). Maybe he has an opinion on this patch? > > > > > > Lets assume that no objection equals patch is good (for now, we can > > > always revert or change it later of course). > > > > hmmm, I do now get warnings from autoreconf 2.69: > > > > autoreconf: running: automake --add-missing --copy --force-missing > > libasm/Makefile.am:66: warning: deprecated feature: target 'libasm.so' > > overrides 'libasm.so$(EXEEXT)' > > libasm/Makefile.am:66: change your target to read 'libasm.so$(EXEEXT)' > > /usr/share/automake-1.13/am/program.am: target 'libasm.so$(EXEEXT)' was > > defined here > > libasm/Makefile.am:37: while processing program 'libasm.so' > > libdw/Makefile.am:114: warning: deprecated feature: target 'libdw.so' > > overrides 'libdw.so$(EXEEXT)' > > libdw/Makefile.am:114: change your target to read 'libdw.so$(EXEEXT)' > > /usr/share/automake-1.13/am/program.am: target 'libdw.so$(EXEEXT)' was > > defined here > > libdw/Makefile.am:38: while processing program 'libdw.so' > > libelf/Makefile.am:116: warning: deprecated feature: target 'libelf.so' > > overrides 'libelf.so$(EXEEXT)' > > libelf/Makefile.am:116: change your target to read 'libelf.so$(EXEEXT)' > > /usr/share/automake-1.13/am/program.am: target 'libelf.so$(EXEEXT)' was > > defined here > > libelf/Makefile.am:38: while processing program 'libelf.so' > > autoreconf: Leaving directory `.' > > > > Is this because I am using automake 1.13 and I really should upgrade to > > something newer? Or do newer automakes also yell and scream about this? > > I see the same set of warnings with automake 1.16.3 too, although > for some reason there are no complains about libdebuginfod.so target. > > There must be something odd with automake, I'll have a look.
OK, there was no mystery at all: $ git grep '_PROGRAMS.*_LIBRARIES' libasm/Makefile.am:noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so) libdw/Makefile.am:noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so) libelf/Makefile.am:noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so) In other words, automake was told that libasm.so, libdw.so, and libelf.so are noinst_PROGRAMS, and rightfully decided that they shall have $(EXEEXT) suffix. What was the reason for including these libraries into noinst_PROGRAMS? -- ldv