2015-04-20 12:43:05

by Dirk Gouders

[permalink] [raw]
Subject: [PATCH] tools/lib/api/Makefile: Add feature check for _FORTIFY_SOURCE

For example on Gentoo systems where _FORTIFY_SOURCE is set by default,
`make -C tools/perf' fails, because of the macro being redefined.

Fix that by a feature-check analogous to tools/perf/config/Makefile.

Signed-off-by: Dirk Gouders <[email protected]>
---
tools/lib/api/Makefile | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
index d8fe29f..acf9097 100644
--- a/tools/lib/api/Makefile
+++ b/tools/lib/api/Makefile
@@ -16,7 +16,14 @@ MAKEFLAGS += --no-print-directory
LIBFILE = $(OUTPUT)libapi.a

CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
-CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 -fPIC
+CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -fPIC
+
+ifeq ($(DEBUG),0)
+ ifeq ($(feature-fortify-source), 1)
+ CFLAGS += -D_FORTIFY_SOURCE=2
+ endif
+endif
+
CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64

RM = rm -f
--
2.3.5


2015-04-20 18:16:38

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] tools/lib/api/Makefile: Add feature check for _FORTIFY_SOURCE


* Dirk Gouders <[email protected]> wrote:

> For example on Gentoo systems where _FORTIFY_SOURCE is set by default,
> `make -C tools/perf' fails, because of the macro being redefined.
>
> Fix that by a feature-check analogous to tools/perf/config/Makefile.
>
> Signed-off-by: Dirk Gouders <[email protected]>
> ---
> tools/lib/api/Makefile | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
> index d8fe29f..acf9097 100644
> --- a/tools/lib/api/Makefile
> +++ b/tools/lib/api/Makefile
> @@ -16,7 +16,14 @@ MAKEFLAGS += --no-print-directory
> LIBFILE = $(OUTPUT)libapi.a
>
> CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
> -CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 -fPIC
> +CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -fPIC
> +
> +ifeq ($(DEBUG),0)
> + ifeq ($(feature-fortify-source), 1)
> + CFLAGS += -D_FORTIFY_SOURCE=2
> + endif
> +endif

So how about undefining it instead and re-defining it as
_FORTIFY_SOURCE=2?

Just in case a distro sets a weaker version - lets not accept that
weaker setting. We've always had the stronger version of it.

Thanks,

Ingo

2015-04-20 18:40:10

by Dirk Gouders

[permalink] [raw]
Subject: Re: [PATCH] tools/lib/api/Makefile: Add feature check for _FORTIFY_SOURCE

Ingo Molnar <[email protected]> writes:

> * Dirk Gouders <[email protected]> wrote:
>
>> For example on Gentoo systems where _FORTIFY_SOURCE is set by default,
>> `make -C tools/perf' fails, because of the macro being redefined.
>>
>> Fix that by a feature-check analogous to tools/perf/config/Makefile.
>>
>> Signed-off-by: Dirk Gouders <[email protected]>
>> ---
>> tools/lib/api/Makefile | 9 ++++++++-
>> 1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
>> index d8fe29f..acf9097 100644
>> --- a/tools/lib/api/Makefile
>> +++ b/tools/lib/api/Makefile
>> @@ -16,7 +16,14 @@ MAKEFLAGS += --no-print-directory
>> LIBFILE = $(OUTPUT)libapi.a
>>
>> CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
>> -CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 -fPIC
>> +CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -fPIC
>> +
>> +ifeq ($(DEBUG),0)
>> + ifeq ($(feature-fortify-source), 1)
>> + CFLAGS += -D_FORTIFY_SOURCE=2
>> + endif
>> +endif
>
> So how about undefining it instead and re-defining it as
> _FORTIFY_SOURCE=2?
>
> Just in case a distro sets a weaker version - lets not accept that
> weaker setting. We've always had the stronger version of it.

Yes, I was suggesting something similar (but without founded reasoning),
some time ago [1].

Would the "undefining-approch" mean that we should modify the handling
of _FORTIFY_SOURCE in tools/perf/config/Makefile as well?

Dirk

[1] https://lkml.org/lkml/2013/5/22/186

2015-04-20 18:56:09

by Bobby Powers

[permalink] [raw]
Subject: Re: [PATCH] tools/lib/api/Makefile: Add feature check for _FORTIFY_SOURCE

Hi,

Dirk Gouders <[email protected]> wrote:
> Yes, I was suggesting something similar (but without founded reasoning),
> some time ago [1].

I submitted a patch for this a few days ago, but I didn't realize I
should CC linux-kbuild@ (my bad):
https://lkml.org/lkml/2015/4/18/71

yours,
Bobby

2015-04-21 07:54:16

by Dirk Gouders

[permalink] [raw]
Subject: Re: [PATCH] tools/lib/api/Makefile: Add feature check for _FORTIFY_SOURCE

Bobby Powers <[email protected]> writes:

> Hi,
>
> Dirk Gouders <[email protected]> wrote:
>> Yes, I was suggesting something similar (but without founded reasoning),
>> some time ago [1].
>
> I submitted a patch for this a few days ago, but I didn't realize I
> should CC linux-kbuild@ (my bad):
> https://lkml.org/lkml/2015/4/18/71

Thanks for the hint, Bobby, I really should have checked recent
archives.

I could not apply your patch against Linus' current tree, but tested it
with your change typed in, manually with positive result (as expected).

Dirk