Bug 34574

Summary: libbsd installs nlist.h, but it conflicts with the nlist.h provided by elfutils
Product: libbsd Reporter: Kevin McCarthy <signals>
Component: libbsdAssignee: Guillem Jover <guillem>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Kevin McCarthy 2011-02-22 08:08:12 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.
Comment 1 Guillem Jover 2011-02-22 12:39:28 UTC
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.
Comment 2 Guillem Jover 2011-06-03 11:47:21 UTC
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.
Comment 3 Guillem Jover 2012-06-27 05:12:56 UTC
This was fixed in libbsd 0.4.0, closing now.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.