Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 20 Feb 2012 14:17:03 -0500
From: Rich Felker <>
Subject: Re: Missing header(s)

On Mon, Feb 20, 2012 at 09:24:59AM -0800, Isaac Dunham wrote:
> ar.h is a header that defines struct ar_hdr and several components.

Yeah, I've gotten this report before and just haven't gotten around to
adding it. I have no objection to adding ar.h though.

> Needed for at least GNU make-3.81 (I'm sticking with the last GPL2+
> version, myself).

Doesn't 3.81 already have some important bugs you need to patch
anyway? If so you could add ar.h at the same time. This won't be
needed for musl once I get ar.h added, but it would make the resulting
build more portable anyway.

> By the way, I've put together a sys/cdefs.h header that gets a lot
> of stuff to compile; ~95% of it is backwards-compatability macros.
> If you want, I can submit it; I'd add

I wouldn't mind seeing it, and as long as it's clean I'll probably add

> #include'ing <sys/cdefs.h> is semi-portable, though (NetBSD, GNU
> #libc)--and the only option if you need to support some old systems
> #as well as c99.

I'm confused how it would be necessary for this. The __STDC__ and
__STDC_VERSION__ macros give you all you need to make the appropriate
definitions yourself if you really need to support pre-standardized C.
If you just need to support C89 and C99, you'd rarely have to test
anything anyway; just use the intersection of the 2 languages (which
is equivalent to C89, except that you can't use C99 keywords like
inline, restrict, _Bool, etc.).

As such, I still see apps that include sys/cdefs.h as buggy.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.