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]

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


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