This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PING: [PATCH] [BZ #17836]: -pg -pie doesn't work on x86-64


PING

On Tue, Jan 13, 2015 at 6:26 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> We compile gcrt1.o with -fPIC to support both "gcc -pg" and "gcc -pie -pg".
> Tested on x86-64, i686 and x32.  OK for trunk after 2.21 is released?
>
>
> H.J.
> ---
>         [BZ #17836]
>         * csu/Makefile (extra-objs): Add gmon-start.o if not builing
>         shared library.  Add gmon-start.os otherwise.
>         ($(objpfx)g$(start-installed-name)): Use $(objpfx)S%
>         $(objpfx)gmon-start.os if builing shared library.
>         ($(objpfx)g$(static-start-installed-name)): Likewise.
> ---
>  csu/Makefile | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/csu/Makefile b/csu/Makefile
> index f7cf4af..9f0855a 100644
> --- a/csu/Makefile
> +++ b/csu/Makefile
> @@ -32,7 +32,7 @@ aux    = errno
>  elide-routines.os = libc-tls
>  static-only-routines = elf-init
>  csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o)
> -extra-objs = start.o gmon-start.o \
> +extra-objs = start.o \
>              $(start-installed-name) g$(start-installed-name) $(csu-dummies) \
>              S$(start-installed-name)
>  omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
> @@ -46,9 +46,11 @@ tests := tst-empty tst-atomic tst-atomic-long
>  tests-static := tst-empty
>
>  ifeq (yes,$(build-shared))
> -extra-objs += S$(start-installed-name)
> +extra-objs += S$(start-installed-name) gmon-start.os
>  install-lib += S$(start-installed-name)
>  generated += start.os
> +else
> +extra-objs += gmon-start.o
>  endif
>
>  ifneq ($(start-installed-name),$(static-start-installed-name))
> @@ -95,10 +97,17 @@ endif
>  # The profiling startfile is made by linking together the normal
>  # startfile with gmon-start.o, which defines a constructor function
>  # to turn on profiling code at startup.
> +ifeq (yes,$(build-shared))
> +$(addprefix $(objpfx),$(sort g$(start-installed-name) \
> +                            g$(static-start-installed-name))): \
> +  $(objpfx)g%: $(objpfx)S% $(objpfx)gmon-start.os
> +       $(link-relocatable)
> +else
>  $(addprefix $(objpfx),$(sort g$(start-installed-name) \
>                              g$(static-start-installed-name))): \
>    $(objpfx)g%: $(objpfx)% $(objpfx)gmon-start.o
>         $(link-relocatable)
> +endif
>
>  # These extra files are sometimes expected by system standard linking
>  # procedures, but we have nothing for them to do.  So compile empty files.
> --
> 1.9.3
>



-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]