This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [BZ #7064] Put vm86 into libc.a
On Sun, 29 Apr 2012, Andreas Schwab wrote:
> "Joseph S. Myers" <joseph@codesourcery.com> writes:
>
> > FWIW I'm seeing a check-abi failure for vm86 on x86.
> >
> > @@ -2173 +2172,0 @@ GLIBC_2.3.4
> > - vm86 F
>
> What does your sysd-syscalls say about vm86?
Content for both vm86old and vm86 as follows:
#### CALL=vm86old NUMBER=113 ARGS=i:p SOURCE=-
ifeq (,$(filter vm86old,$(unix-syscalls)))
ifneq (,$(filter .os,$(object-suffixes)))
unix-syscalls += vm86old
unix-extra-syscalls += vm86old
shared-only-routines += vm86old
$(objpfx)vm86old.os: \
$(..)sysdeps/unix/make-syscalls.sh
$(make-target-directory)
(echo '#define SYSCALL_NAME vm86old'; \
echo '#define SYSCALL_NARGS 1'; \
echo '#define SYSCALL_SYMBOL __vm86old'; \
echo '#include <syscall-template.S>'; \
echo 'symbol_version (__vm86old, vm86, GLIBC_2.0)'; \
) | $(compile-syscall) $(foreach p,$(patsubst %vm86old,%,$(basename $(@F))),$($(p)CPPFLAGS))
endif
endif
ifeq (,$(filter vm86old,$(bp-thunks)))
bp-thunks += vm86old
$(objpfx)$(bppfx)vm86old.ob: $(common-objpfx)s-proto-bp.d
(echo '#define __vm86old(p1) i0v; \'; \
echo 'extern p1, p1v; \'; \
echo '__typeof (i0v) BP_SYM (__vm86old) (__typeof (p1v) *__bounded p1a) { \'; \
echo ' extern __typeof (i0v) (__vm86old) (__typeof (p1v) *__unbounded); \'; \
echo ' return (__vm86old) (CHECK_1 (p1a)); \'; \
echo '} \'; \
echo 'libc_hidden_def (BP_SYM (__vm86old)) \'; \
echo ''; \
echo '#include <bp-thunks.h>'; \
) | $(COMPILE.c) -x c -o $@ -
endif
#### CALL=vm86 NUMBER=166 ARGS=i:ip SOURCE=-
ifeq (,$(filter vm86,$(unix-syscalls)))
unix-syscalls += vm86
$(foreach p,$(sysd-rules-targets),$(foreach o,$(object-suffixes),$(objpfx)$(patsubst %,$p,vm86)$o)): \
$(..)sysdeps/unix/make-syscalls.sh
$(make-target-directory)
(echo '#define SYSCALL_NAME vm86'; \
echo '#define SYSCALL_NARGS 2'; \
echo '#define SYSCALL_SYMBOL __vm86'; \
echo '#include <syscall-template.S>'; \
echo 'weak_alias (__vm86, vm86)'; \
echo 'libc_hidden_weak (vm86)'; \
) | $(compile-syscall) $(foreach p,$(patsubst %vm86,%,$(basename $(@F))),$($(p)CPPFLAGS))
endif
ifeq (,$(filter vm86,$(bp-thunks)))
bp-thunks += vm86
$(objpfx)$(bppfx)vm86.ob: $(common-objpfx)s-proto-bp.d
(echo '#define vm86(i1, p2) i0v; \'; \
echo 'extern i1, i1v; extern p2, p2v; \'; \
echo '__typeof (i0v) BP_SYM (__vm86) (__typeof (i1v) i1a, __typeof (p2v) *__bounded p2a) { \'; \
echo ' extern __typeof (i0v) (vm86) (__typeof (i1v), __typeof (p2v) *__unbounded); \'; \
echo ' return (vm86) (i1a, CHECK_1 (p2a)); \'; \
echo '} \'; \
echo 'libc_hidden_def (BP_SYM (__vm86)) \'; \
echo 'weak_alias (BP_SYM (__vm86), BP_SYM (vm86)) \'; \
echo 'libc_hidden_weak (BP_SYM (vm86)) \'; \
echo ''; \
echo '#include <bp-thunks.h>'; \
) | $(COMPILE.c) -x c -o $@ -
endif
--
Joseph S. Myers
joseph@codesourcery.com