On Wed, Dec 09, 2020 at 11:42:44PM +0100, Mark Wielaard wrote: > Hi Dmitry, > > On Thu, 2020-12-10 at 01:20 +0300, Dmitry V. Levin wrote: > > 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? > > Unfortunately our version control only goes back 15 years and this > particular change was from before that. I think they are noinst because > they have explicit install rules. But it probably should have been > noinst_DATA instead. The old backends libraries (when we would still > create and install that before commit 4f937e24d) used noinst_DATA > instead. > > But using noinst_DATA instead gives the following warnings: > > libasm/Makefile.am:66: warning: variable 'libasm_so_SOURCES' is defined but > no program or > libasm/Makefile.am:66: library has 'libasm_so' as canonical name (possible > typo) > libdw/Makefile.am:114: warning: variable 'libdw_so_SOURCES' is defined but no > program or > libdw/Makefile.am:114: library has 'libdw_so' as canonical name (possible > typo) > libelf/Makefile.am:116: warning: variable 'libelf_so_SOURCES' is defined but > no program or > libelf/Makefile.am:116: library has 'libelf_so' as canonical name (possible > typo)
Apparently, these lib*_so_SOURCES are no longer needed with noinst_DATA and could be safely removed. At least it works for me this way with automake 1.16.3. -- ldv