This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [committed, PATCH] BZ #18409: Remove a trailing `\' in make-syscalls.sh
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 13 May 2015 16:30:44 -0300
- Subject: Re: [committed, PATCH] BZ #18409: Remove a trailing `\' in make-syscalls.sh
- Authentication-results: sourceware.org; auth=none
- References: <CAMe9rOoRSZwvvkZQJQp=n_VqkgoDj=X8sK6v+BFXBFLfCpq2Jg at mail dot gmail dot com>
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