diff mbox

tools/lib/api/Makefile: Add feature check for _FORTIFY_SOURCE

Message ID ghlhhnf0j2.fsf@lena.gouders.net (mailing list archive)
State New, archived
Headers show

Commit Message

Dirk Gouders April 20, 2015, 12:01 p.m. UTC
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 <dirk@gouders.net>
---
 tools/lib/api/Makefile | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Ingo Molnar April 20, 2015, 6:16 p.m. UTC | #1
* Dirk Gouders <dirk@gouders.net> 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 <dirk@gouders.net>
> ---
>  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
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dirk Gouders April 20, 2015, 6:34 p.m. UTC | #2
Ingo Molnar <mingo@kernel.org> writes:

> * Dirk Gouders <dirk@gouders.net> 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 <dirk@gouders.net>
>> ---
>>  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
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bobby Powers April 20, 2015, 6:55 p.m. UTC | #3
Hi,

Dirk Gouders <dirk@gouders.net> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dirk Gouders April 21, 2015, 7:46 a.m. UTC | #4
Bobby Powers <bobbypowers@gmail.com> writes:

> Hi,
>
> Dirk Gouders <dirk@gouders.net> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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