AIX에서 GCC와 함께 64 비트 정보 CSDK를 사용하십니까?
-
12-09-2019 - |
문제
ESQL 스크립트가 XLC 옵션 만 사용하기 때문에이 구성이 지원되지 않는다고 생각합니다 (GCC는 전혀 지원되지 않을 수 있습니다).
그러나 다른 사람들 이이 구성 GCC를 사용하고 AIX에서 64 비트를 사용하고 있는지 알고 싶습니다.
해결책
GCC를 사용하려면 ESQL/C (ClientsDK 또는 CSDK의 일부)를 얻을 수 있지만 완전히 사소한 것은 아닙니다. 원칙적으로, 내가하는 일은 다음과 같습니다.
- 원래 ESQL 스크립트의 사본을 만드십시오.
- 원래 스크립트를 수정하여 GCC 옵션을 요청합니다.
GCC 만 사용하려면 충분합니다. GCC와 때로는 XLC (기본 컴파일러)를 모두 사용하려면 더 어렵습니다.
개인 빈 디렉토리에 ESQL이라는 단일 스크립트가 있습니다 ($ InformixDir/Bin과 같은 것보다 항상 내 경로에 있습니다). 현재 사용중인 ESQL/C 버전을 제작하고 별도의 디렉토리에 저장된 적절한 사전 패치 버전을 실행합니다. 또한 해당 스크립트의 새로운 버전을 자동으로 생성하므로 CSDK 3.00.UC2 1 분 동안 작업 한 다음 CSDK 3.50.FC3로 작업하면 전환을 자동으로 처리합니다.
다음은 Solaris의 ESQL/C 3.50에 적용되는 패치입니다. AIX에 적응해야합니다.
# @(#)$Id: patch.300.64,v 1.2 2007/09/02 21:46:55 jleffler Exp $
# GCC Patch for esql from CSDK 3.00.FC1
--- esql 2007-09-02 14:44:18.739067000 -0700
+++ esql.new 2007-09-02 14:44:26.812149000 -0700
@@ -23,10 +23,33 @@
INFDIR=${INFORMIXDIR=/usr/informix}
DB2CLIDIR=${INSTHOME=/usr/db2}
PREPCC=${INFDIR}/lib/esql/esqlc
-CC="${INFORMIXC=cc} -xarch=v9"
-CC_TH="${INFORMIXC=cc} -xarch=v9"
-CPP="${INFORMIXCPP=CC} -xarch=v9"
-CPP_TH="${INFORMIXCPP=CC} -xarch=v9"
+
+: ${INFORMIXC:=cc}
+: ${INFORMIXCPP:=CC}
+case "$INFORMIXC" in
+*perl*esqlcc*) # Building DBD::Informix
+ case "$ESQLCC" in
+ *gcc*|*g++)
+ CC_ARCHFLAGS="-m64"
+ ;;
+ *cc*|*CC*)
+ CC_ARCHFLAGS="-xarch=v9"
+ ;;
+ esac
+ ;;
+*gcc*|*g++*)
+ CC_ARCHFLAGS="-m64"
+ ;;
+# Beware - this normally needs to be last - because things like esqlcc and gcc match too!
+*cc*|*CC*)
+ CC_ARCHFLAGS="-xarch=v9"
+ ;;
+esac
+
+CC="$INFORMIXC $CC_ARCHFLAGS"
+CC_TH="$INFORMIXC $CC_ARCHFLAGS"
+CPP="$INFORMIXCPP $CC_ARCHFLAGS"
+CPP_TH="$INFORMIXCPP $CC_ARCHFLAGS"
STATICFLAGS=""
CP=${INFORMIXCP="$CC -E -C"} # cpp which runs before esqlc
@@ -51,9 +74,6 @@
then
CC="$CC $CC_AMD32"
CPP="$CPP $CC_AMD32"
-else
-CC=$CC
-CPP=$CPP
fi
: '
@@ -922,7 +942,7 @@
# Set the linker to CPP
# Set the source files to objects
#
- CC=$CPP
+ CC="$CPP"
A="$AO $CPPOPTS"
fi
fi
Lemme는 당신이 통제를 원하는지 알고 있습니다 esql
내가 사용하는 스크립트 (내 프로필 참조). 12 개의 다른 패치 파일 세트 (Solaris의 경우, 두려워)로 만든 9 개의 32 비트 스크립트와 8 개의 64 비트 스크립트가 있습니다. 버전은 ESQL/C 5.20 (온라인 5.20)에서 ESQL/C 7.2X (공식적으로 Long Dead)를 통해 다양한 버전의 CSDK를 통해 다양합니다.