Bugzilla – Bug 34574
libbsd installs nlist.h, but it conflicts with the nlist.h provided by elfutils
Last modified: 2012-06-27 05:12:56 UTC
The fd.o libbsd provides a BSD-compatible nlist function, but on most modern Linux systems there is already an nlist provided by elfutils. This causes a file collision when installing libbsd into the standard system directories.
Since the BSD version works on a.out files, which are uncommon to say the least on modern Linux systems, I propose that it be moved to bsd/nlist.h to avoid this conflict. If any software really needs the a.out version provided in libbsd, it can include bsd/nlist.h.
The BSD nlist works on both a.out and ELF, so it's more generic than the one provided by the libelf implementations, but yes I agree that's not much of selling point currently. Anyway I'm moving all headers from the base directory to /usr/include/bsd/. This will also allow downstreams to possibly install the headers directly under /usr/include/bsd/, instead of /usr/include/libbsd/bsd/.
I'll be removing the obsolete headers which have been issuing warnings now for a long time.
I didn't end up removing the file in this release, as that might have broken existing software. What I did instead was move it under <includedir>bsd/, and add deprecation warnings and make them errors when LIBBSD_DISABLE_DEPRECATED is defined so that users of the library can easily spot those. The deprecated file will be removed on 0.4.0.
This was fixed in libbsd 0.4.0, closing now.