Message ID | CAMe9rOoRSZwvvkZQJQp=n_VqkgoDj=X8sK6v+BFXBFLfCpq2Jg@mail.gmail.com |
---|---|
State | New |
Headers | show |
Hi On 13-05-2015 13:20, H.J. Lu wrote: > commit c14874927b499ddfdbb03745bb32bfc778b8595f > Author: Roland McGrath <roland@hack.frob.com> > Date: Tue May 22 16:00:50 2012 -0700 > > syscalls.list support for vDSO IFUNCs, use it for x32 gettimeofday and time. > > added > > \$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\ > \$(..)sysdeps/unix/make-syscalls.sh\ > \$(make-target-directory) > > to sysdeps/unix/make-syscalls.sh which generates > > #### CALL=gettimeofday NUMBER=(0x40000000 + 96) ARGS=i:pP SOURCE=- > ifeq (,$(filter gettimeofday,$(unix-syscalls))) > unix-syscalls += gettimeofday > $(foreach p,$(sysd-rules-targets),$(foreach > o,$(object-suffixes-noshared),$(objpfx)$(patsubst > %,$p,gettimeofday)$o)): \ > $(..)sysdeps/unix/make-syscalls.sh > $(make-target-directory) > (echo '#define SYSCALL_NAME gettimeofday'; \ > echo '#define SYSCALL_NARGS 2'; \ > echo '#define SYSCALL_SYMBOL __gettimeofday'; \ > echo '#include <syscall-template.S>'; \ > echo 'weak_alias (__gettimeofday, gettimeofday)'; \ > echo 'libc_hidden_weak (gettimeofday)'; \ > ) | $(compile-syscall) $(foreach p,$(patsubst > %gettimeofday,%,$(basename $(@F))),$($(p)CPPFLAGS)) > $(foreach p,$(sysd-rules-targets),$(objpfx)$(patsubst %,$p,gettimeofday).os): \ > $(..)sysdeps/unix/make-syscalls.sh $(make-target-directory) > ^^^^^^^^^ Missing newline > (echo '#include <dl-vdso.h>'; \ > echo 'extern void *__gettimeofday_ifunc (void) __asm > ("__gettimeofday");'; \ > echo 'void *'; \ > echo '__gettimeofday_ifunc (void)'; \ > echo '{'; \ > echo ' PREPARE_VERSION_KNOWN (symver, LINUX_2_6);'; \ > echo ' return _dl_vdso_vsym ("__vdso_gettimeofday", &symver);'; \ > echo '}'; \ > echo 'asm (".type __gettimeofday, %gnu_indirect_function");'; \ > echo 'asm (".globl __GI___gettimeofday\n"'; \ > echo ' "__GI___gettimeofday = __gettimeofday");'; \ > echo 'weak_alias (__gettimeofday, gettimeofday)'; \ > echo 'libc_hidden_weak (gettimeofday)'; \ > ) | $(compile-stdin.c) $(foreach p,$(patsubst > %gettimeofday,%,$(basename $(@F))),$($(p)CPPFLAGS)) > endif > > This only affected x32. I checked in this patch after tested on > x32. > > Adhemerval, can you check if your problem with dash in > > https://sourceware.org/ml/libc-alpha/2015-04/msg00277.html > > is fixed by this? > > Thanks. I have been testing another more complete fix pointed out by Joseph [1] and it fixes the x32 build with dash issue I was seeing. Shouldn't we push this one? [1] https://sourceware.org/ml/libc-alpha/2015-02/msg00396.html
On Wed, May 13, 2015 at 12:30 PM, Adhemerval Zanella <adhemerval.zanella@linaro.org> wrote: > Hi > > On 13-05-2015 13:20, H.J. Lu wrote: >> commit c14874927b499ddfdbb03745bb32bfc778b8595f >> Author: Roland McGrath <roland@hack.frob.com> >> Date: Tue May 22 16:00:50 2012 -0700 >> >> syscalls.list support for vDSO IFUNCs, use it for x32 gettimeofday and time. >> >> added >> >> \$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\ >> \$(..)sysdeps/unix/make-syscalls.sh\ >> \$(make-target-directory) >> >> to sysdeps/unix/make-syscalls.sh which generates >> >> #### CALL=gettimeofday NUMBER=(0x40000000 + 96) ARGS=i:pP SOURCE=- >> ifeq (,$(filter gettimeofday,$(unix-syscalls))) >> unix-syscalls += gettimeofday >> $(foreach p,$(sysd-rules-targets),$(foreach >> o,$(object-suffixes-noshared),$(objpfx)$(patsubst >> %,$p,gettimeofday)$o)): \ >> $(..)sysdeps/unix/make-syscalls.sh >> $(make-target-directory) >> (echo '#define SYSCALL_NAME gettimeofday'; \ >> echo '#define SYSCALL_NARGS 2'; \ >> echo '#define SYSCALL_SYMBOL __gettimeofday'; \ >> echo '#include <syscall-template.S>'; \ >> echo 'weak_alias (__gettimeofday, gettimeofday)'; \ >> echo 'libc_hidden_weak (gettimeofday)'; \ >> ) | $(compile-syscall) $(foreach p,$(patsubst >> %gettimeofday,%,$(basename $(@F))),$($(p)CPPFLAGS)) >> $(foreach p,$(sysd-rules-targets),$(objpfx)$(patsubst %,$p,gettimeofday).os): \ >> $(..)sysdeps/unix/make-syscalls.sh $(make-target-directory) >> ^^^^^^^^^ Missing newline >> (echo '#include <dl-vdso.h>'; \ >> echo 'extern void *__gettimeofday_ifunc (void) __asm >> ("__gettimeofday");'; \ >> echo 'void *'; \ >> echo '__gettimeofday_ifunc (void)'; \ >> echo '{'; \ >> echo ' PREPARE_VERSION_KNOWN (symver, LINUX_2_6);'; \ >> echo ' return _dl_vdso_vsym ("__vdso_gettimeofday", &symver);'; \ >> echo '}'; \ >> echo 'asm (".type __gettimeofday, %gnu_indirect_function");'; \ >> echo 'asm (".globl __GI___gettimeofday\n"'; \ >> echo ' "__GI___gettimeofday = __gettimeofday");'; \ >> echo 'weak_alias (__gettimeofday, gettimeofday)'; \ >> echo 'libc_hidden_weak (gettimeofday)'; \ >> ) | $(compile-stdin.c) $(foreach p,$(patsubst >> %gettimeofday,%,$(basename $(@F))),$($(p)CPPFLAGS)) >> endif >> >> This only affected x32. I checked in this patch after tested on >> x32. >> >> Adhemerval, can you check if your problem with dash in >> >> https://sourceware.org/ml/libc-alpha/2015-04/msg00277.html >> >> is fixed by this? >> >> Thanks. > > I have been testing another more complete fix pointed out by Joseph [1] > and it fixes the x32 build with dash issue I was seeing. Shouldn't we > push this one? > > [1] https://sourceware.org/ml/libc-alpha/2015-02/msg00396.html Well, this part is the same as the one I checked in: \$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\ - \$(..)sysdeps/unix/make-syscalls.sh\ + \$(..)sysdeps/unix/make-syscalls.sh At minimum, that patch should be rebased.
From d9efd775ba51916b58b899d8b1c8501105a830de Mon Sep 17 00:00:00 2001 From: "H.J. Lu" <hjl.tools@gmail.com> Date: Wed, 13 May 2015 09:11:12 -0700 Subject: [PATCH] Remove a trailing `\' in make-syscalls.sh [BZ #18409] * sysdeps/unix/make-syscalls.sh: Remove a trailing `\'. --- ChangeLog | 5 +++++ NEWS | 2 +- sysdeps/unix/make-syscalls.sh | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1e4d6f8..dc7431b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-05-13 H.J. Lu <hongjiu.lu@intel.com> + + [BZ #18409] + * sysdeps/unix/make-syscalls.sh: Remove a trailing `\'. + 2015-05-13 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/aarch64/tls-macros.h (TLS_GD): Add "cc" to the clobber diff --git a/NEWS b/NEWS index f4fe47f..91027bd 100644 --- a/NEWS +++ b/NEWS @@ -17,7 +17,7 @@ Version 2.22 18007, 18019, 18020, 18029, 18030, 18032, 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18125, 18128, 18138, 18185, 18197, 18206, 18210, 18211, 18247, 18287, - 18319, 18333, 18346, 18397. + 18319, 18333, 18346, 18397, 18409. * Cache information can be queried via sysconf() function on s390 e.g. with _SC_LEVEL1_ICACHE_SIZE as argument. diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh index e3596b6..910a22c 100644 --- a/sysdeps/unix/make-syscalls.sh +++ b/sysdeps/unix/make-syscalls.sh @@ -274,7 +274,7 @@ while read file srcfile caller syscall args strong weak; do vdso_symver=`echo "$vdso_symver" | sed 's/\./_/g'` echo "\ \$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\ - \$(..)sysdeps/unix/make-syscalls.sh\ + \$(..)sysdeps/unix/make-syscalls.sh \$(make-target-directory) (echo '#include <dl-vdso.h>'; \\ echo 'extern void *${strong}_ifunc (void) __asm (\"${strong}\");'; \\ -- 1.9.3