Thread (6 messages) 6 messages, 3 authors, 2012-08-31

Re: [PATCH BlueZ] build: Use AC_USE_SYSTEM_EXTENSIONS for POSIX/C extensions

flat view

From: Lucas De Marchi <hidden>
Date: 2012-08-31 16:11:39

On Fri, Aug 31, 2012 at 1:02 PM, Marcel Holtmann [off-list ref] wrote:
Hi Lucas,
quoted
quoted
On Thu, Aug 30, 2012 at 11:08 AM, Marcel Holtmann [off-list ref] wrote:
quoted
Hi Anderson,
quoted
Using this macro in configure.ac enables certain extensions that BlueZ
currently depends on. The macro is recommended instead of defining
_GNU_SOURCE on each C file.
what is the advantage of this. I am actually fine with using _GNU_SOURCE
in the C files. It is according to the man pages.
The only advantage I see is that we don't have to worry about
reviewing these defines as the symbols get incorporated in newer
standards. For instance, this patch was brought up because O_CLOEXEC
does not exist on POSIX.1-2001, but was incorporated POSIX.1-2008, so
for newer systems _GNU_SOURCE is not necessary for it anymore, but for
some (still maintained) distros it is.

Sometimes we remove code that used these extensions, and simply forget
the _GNU_SOURCE there as well.
And also forget to add it. Then 3 months later comes a patch to fix it
by adding the definition.

Using the autofoo macro we stop the build-fix patches for things like this.


That is: it removes code, it's more future-proof and it has no
downsides. So, what's the point of not using it?
unless that autoconf thing breaks and we don't get what we want. Or we
are dealing with an outdated autoconf.
seriously? before 2.60? It's already a pre-requisite in our configure.ac

I am against this. I rather get build fixes and have them recorded in
git compared to hoping that this magically fixes everything.
quoted
Some months ago I sent a patch to also remove a lot of dumb "#include
config.h". It has the same reasoning behind it: remove code and be
more future-proof. It was for connman, but if you are interested I can
send it to bluez/ofono/etc too -
http://permalink.gmane.org/gmane.linux.network.connman/7310
Same thing. I believe that boilerplate is better being explicit than
magically having it done.
If it helps to convince you: systemd, kmod, pulseaudio, libabc, and
many others.... all of them use these macros.


Lucas De Marchi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help