From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/14298 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: Removing sys/sysmacros.h from sys/types.h Date: Sat, 29 Jun 2019 17:41:56 -0400 Message-ID: <20190629214156.GM1506@brightrain.aerifal.cx> References: <20190614211502.GJ1506@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="149427"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.5.21 (2010-09-15) To: musl@lists.openwall.com Original-X-From: musl-return-14314-gllmg-musl=m.gmane.org@lists.openwall.com Sat Jun 29 23:42:11 2019 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1hhL6p-000cm9-JZ for gllmg-musl@m.gmane.org; Sat, 29 Jun 2019 23:42:11 +0200 Original-Received: (qmail 3552 invoked by uid 550); 29 Jun 2019 21:42:09 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 3507 invoked from network); 29 Jun 2019 21:42:09 -0000 Content-Disposition: inline In-Reply-To: Original-Sender: Rich Felker Xref: news.gmane.org gmane.linux.lib.musl.general:14298 Archived-At: On Sat, Jun 29, 2019 at 02:00:46PM -0700, Michael Forney wrote: > On 2019-06-14, Rich Felker wrote: > > On Fri, Jun 14, 2019 at 01:20:21PM -0700, Benjamin Wright wrote: > >> Hello, > >> > >> Would it be possible to remove the sys/sysmacros.h include from > >> sys/types.h? > >> > >> This change was added in 2011 - > >> https://git.musl-libc.org/cgit/musl/commit/include/sys/types.h?id=f552c792c7ce5a560f214e1104d93ee5b0833967 > >> > >> However it appears to have been removed from other standard libc > >> implementations around ~2015 based on this announcement: > >> https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html > >> > >> This can cause issues with user defined symbol collision of the symbols > >> major, minor or makedev. > > > > Yes, I'd actually forgotten we did this. I'll remove it right away in > > time for the next release. > > I'm just curious if there is a good way to use these macros in > software that is otherwise portable without adding a configure script. > Most BSDs don't have sys/sysmacros.h, and now glibc and musl require > including sys/sysmacros.h to use them. > > It's a shame that while these macros are available on most unix-like > operating systems, they can't be accessed in a generic way. There's really not much of a use for them at all in portable software. Devices having "major/minor numbers", rather than dev_t just being an abstract identifier, is an anachronism that's not really compatible with exploding numbers of device types or operating systems that don't expose any idea of a type/major. If you really do need them, you should probably just search for them with a configure check, first for sys/sysmacros.h, then for any other historical places they might have been found in. Rich