📄 fixinc.x86-linux-gnu
字号:
#! /bin/sh## The script is created for Cygnus by vmakarov@cygnus.com and based on# fixinc.wrap## This script is designed for x86 with gnulibc of version 2.0 and less# for solution of problems with invalid asm-statements by creating# small wrappers around the include files containg the asm-statements.## See README-fixinc for more information.# Directory in which to store the results.LIB=${1?"fixincludes: output directory not specified"}# Make sure it exists.if [ ! -d $LIB ]; then mkdir $LIB || exit 1fi# Make LIB absolute if it is relative.# Don't do this if not necessary, since may screw up automounters.case $LIB in/*) ;;*) cd $LIB; LIB=`${PWDCMD-pwd}` ;;esacecho Building fixed headers in ${LIB} file=selectbits.hecho Fixed $file for glibc-2.0.xrm -f $LIB/$filecat <<'__EOF__' >$LIB/$file/* This file fixes __FD_ZERO bug for glibc-2.0.x. */#ifndef _SELECTBITS_H_WRAPPER#include <features.h>#include_next <selectbits.h>#if defined(__FD_ZERO) && defined(__GLIBC__) && defined(__GLIBC_MINOR__) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 0#undef __FD_ZERO#define __FD_ZERO(fdsetp) \ do { \ int __d0, __d1; \ __asm__ __volatile__ ("cld; rep; stosl" \ : "=&c" (__d0), "=&D" (__d1) \ : "a" (0), "0" (sizeof (__fd_set) \ / sizeof (__fd_mask)), \ "1" ((__fd_mask *) (fdsetp)) \ : "memory"); \ } while (0)#endif#define _SELECTBITS_H_WRAPPER#endif /* _SELECTBITS_H_WRAPPER */__EOF__# Define _SELECTBITS_H_WRAPPER at the end of the wrapper, not# the start, so that if #include_next gets another instance of# the wrapper, this will follow the #include_next chain until# we arrive at the real <selectbits.h>.chmod a+r $LIB/$file# asm/posix_types.h for libc version 1.xfile=asm/posix_types.hecho Fixed $file for glibc-1.xrm -f $LIB/$filedir=`dirname $LIB/$file`if [ ! -d $dir ]; then mkdir -p $dir || exit 1ficat <<'__EOF__' >$LIB/$file/* This file fixes __FD_ZERO bug for glibc-1.x. */#ifndef _POSIX_TYPES_H_WRAPPER#include <features.h>#include_next <asm/posix_types.h>#if defined(__FD_ZERO) && !defined(__GLIBC__)#undef __FD_ZERO#define __FD_ZERO(fdsetp) \ do { \ int __d0, __d1; \ __asm__ __volatile__("cld ; rep ; stosl" \ : "=&c" (__d0), "=&D" (__d1) \ : "a" (0), "0" (__FDSET_LONGS), \ "1" ((__kernel_fd_set *) (fdsetp)) :"memory"); \ } while (0)#endif#define _POSIX_TYPES_H_WRAPPER#endif /* _POSIX_TYPES_H_WRAPPER */__EOF__# Define _POSIX_TYPES_H_WRAPPER at the end of the wrapper, not# the start, so that if #include_next gets another instance of# the wrapper, this will follow the #include_next chain until# we arrive at the real <asm/posix_types.h>.chmod a+r $LIB/$file# gnu/types.h for libc version 1.xfile=gnu/types.hecho Fixed $file for glibc-1.xrm -f $LIB/$filedir=`dirname $LIB/$file`if [ ! -d $dir ]; then mkdir -p $dir || exit 1ficat <<'__EOF__' >$LIB/$file/* This file fixes __FD_ZERO bug for glibc-1.x. */#ifndef _TYPES_H_WRAPPER#include <features.h>#include_next <gnu/types.h>#if defined(__FD_ZERO) && !defined(__GLIBC__)#undef __FD_ZERO# define __FD_ZERO(fdsetp) \ do { \ int __d0, __d1; \ __asm__ __volatile__("cld ; rep ; stosl" \ : "=&c" (__d0), "=&D" (__d1) \ : "a" (0), "0" (__FDSET_LONGS), \ "1" ((__fd_set *) (fdsetp)) :"memory"); \ } while (0)#endif#define _TYPES_H_WRAPPER#endif /* _TYPES_H_WRAPPER */__EOF__# Define _TYPES_H_WRAPPER at the end of the wrapper, not the start,# so that if #include_next gets another instance of the wrapper,# this will follow the #include_next chain until we arrive at# the real <gnu/types.h>.chmod a+r $LIB/$fileif [ x${INSTALL_ASSERT_H} != x ]then cd ${ORIG_DIR} rm -f include/assert.h cp ${srcdir}/assert.h include/assert.h || exit 1 chmod a+r include/assert.hfiexit 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -