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
* 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
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
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
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