[PATCH] Drop $(EXEEXT) suffix from shared libraries

Dmitry V. Levin ldv@altlinux.org
Wed Dec 9 23:09:17 GMT 2020


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


More information about the Elfutils-devel mailing list