fixinc.math

来自「GCC编译器源代码」· MATH 代码 · 共 54 行

MATH
54
字号
#! /bin/sh# Fix struct exception in /usr/include/math.h.## We expect several systems which did not need fixincludes in the past# to need to fix just math.h.  So we created a separate fixinc.math# script to fix just that problem.# See README-fixinc for more information.# Directory containing the original header files.# (This was named INCLUDES, but that conflicts with a name in Makefile.in.)INPUT=${2-${INPUT-/usr/include}}# 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 1fiecho Building fixed headers in ${LIB}# Some math.h files define struct exception, which conflicts with# the class exception defined in the C++ file std/stdexcept.h.  We# redefine it to __math_exception.  This is not a great fix, but I# haven't been able to think of anything better.file=math.hif [ -r $INPUT/$file ]; then  echo Checking $INPUT/$file  if grep 'struct exception' $INPUT/$file >/dev/null  then    echo Fixed $file    rm -f $LIB/$file    cat <<'__EOF__' >$LIB/$file#ifndef _MATH_H_WRAPPER#ifdef __cplusplus# define exception __math_exception#endif#include_next <math.h>#ifdef __cplusplus# undef exception#endif#define _MATH_H_WRAPPER#endif /* _MATH_H_WRAPPER */__EOF__    # Define _MATH_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 <math.h>.    chmod a+r $LIB/$file  fifiexit 0

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?