[lttng-dev] [PATCH] Remove -pie flag for shared library

Simon Marchi simon.marchi at polymtl.ca
Tue May 14 17:05:59 EDT 2013


Thank you Francis.

I tested your patch locally and it works, so I included it in the
packaging on Launchpad so that the package builds for now. However, it
would be preferable if the problem could be addressed more gracefully
upstream.

Simon

On 14 May 2013 16:15, Francis Giraldeau <francis.giraldeau at gmail.com> wrote:
> Some build environment with hardening enabled adds -pie flags to LDFLAGS. While
> it's required for ELF binaries, it doesn't make sens for shared libraries. For
> this case, filter-out the erroneous option.
>
> Signed-off-by: Francis Giraldeau <francis.giraldeau at gmail.com>
> ---
>  doc/examples/demo/Makefile     | 6 ++++--
>  doc/examples/easy-ust/Makefile | 4 +++-
>  2 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/doc/examples/demo/Makefile b/doc/examples/demo/Makefile
> index bbc8ccb..3145146 100644
> --- a/doc/examples/demo/Makefile
> +++ b/doc/examples/demo/Makefile
> @@ -34,6 +34,8 @@ EMPTY_AUTOMAKE_TARGETS = distdir install install-data install-exec uninstall \
>  $(EMPTY_AUTOMAKE_TARGETS):
>  endif
>
> +CLEAN_LDFLAGS = $(filter-out -pie,$(LDFLAGS))
> +
>  all: demo lttng-ust-provider-ust-tests-demo.so lttng-ust-provider-ust-tests-demo3.so
>
>  tp.o: tp.c ust_tests_demo.h
> @@ -43,13 +45,13 @@ tp2.o: tp2.c ust_tests_demo2.h
>         $(CC) $(CPPFLAGS) $(CFLAGS) -fpic -c -o $@ $<
>
>  lttng-ust-provider-ust-tests-demo.so: tp.o tp2.o
> -       $(CC) -shared -o $@ $(LDFLAGS) -llttng-ust $^
> +       $(CC) -shared -o $@ $(CLEAN_LDFLAGS) -llttng-ust $^
>
>  tp3.o: tp3.c ust_tests_demo3.h
>         $(CC) $(CPPFLAGS) $(CFLAGS) -fpic -c -o $@ $<
>
>  lttng-ust-provider-ust-tests-demo3.so: tp3.o
> -       $(CC) -shared -o $@ $(LDFLAGS) -llttng-ust $^
> +       $(CC) -shared -o $@ $(CLEAN_LDFLAGS) -llttng-ust $^
>
>  demo.o: demo.c
>         $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
> diff --git a/doc/examples/easy-ust/Makefile b/doc/examples/easy-ust/Makefile
> index e20e53a..e95a2c5 100644
> --- a/doc/examples/easy-ust/Makefile
> +++ b/doc/examples/easy-ust/Makefile
> @@ -36,10 +36,12 @@ EMPTY_AUTOMAKE_TARGETS = distdir install install-data install-exec uninstall \
>  $(EMPTY_AUTOMAKE_TARGETS):
>  endif
>
> +CLEAN_LDFLAGS = $(filter-out -pie,$(LDFLAGS))
> +
>  all: sample
>
>  sample: sample.o tp.o
> -       $(CC) -o $@ $^ $(LDFLAGS) $(LIBS)
> +       $(CC) -o $@ $^ $(CLEAN_LDFLAGS) $(LIBS)
>
>  sample.o: sample.c sample_component_provider.h
>         $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
> --
> 1.8.1.2
>
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev



More information about the lttng-dev mailing list