Chinaunix

标题: 一个非常奇怪的现象! 请教各位! [打印本页]

作者: 老技术员    时间: 2003-06-23 16:58
标题: 一个非常奇怪的现象! 请教各位!
一个应用系统从H70(Aix unix v4.3.3, oracle  v8.1.6)上迁移到M85(Aix unix v4.3.3, oracle  v8.1.6)上, 安装时,为了减少出问题,基本上是一致的设置(目录,及参数。。。等, 尽可能地保持一直)
可迁移后,有一个用c 语言(proc )写的应用软件编译时,有时会成功,有时会报错。(两次编译都是在无其他用户使用时作的。)
成功与报错的信息如下:
>;mkhp hpkclean
Compile hpkclean under oracle 8.1.6 for AIX
    1500-030: (I) INFORMATION: main: Additional optimization may be attained by.

>;mkhp hpkclean
Compile hpkclean under oracle 9.2 for AIX
    1500-030: (I) INFORMATION: main: Additional optimization may be attained by.
ld: 0711-738 ERROR: Input file /lib/crt0_r.o:
        XCOFF32 object files are not allowed in 64-bit mode.
Compile hpkclean under oracle 8.1.6 for AIX
    1500-030: (I) INFORMATION: main: Additional optimization may be attained by.
>;

--------------------------------------------------------------------------------
感觉很难理解。不知那位知道是什么原因?


mkhp 内容如下:

proc  iname=$1 | grep ERROR
# for AIX
count=`uname -a | grep AIX | grep -v grep|wc -l`
if [ $count -eq '1' ]
then
# oracle 9.2 for AIX
  count=`sqlldr | grep 9.2 | grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 9.2 for AIX"
    cc -g -q64 -O -I. \
    -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c

    cc -g -q64 -o $1 $1.o \
    -L$ORACLE_HOME/lib/ \
    -lclntsh \
    -lld \
    -lm \
    `cat $ORACLE_HOME/lib/sysliblist` \
    -lm \
    -lc_r \
    -lpthreads
  fi
# oracle 8.1.7 for AIX
  count=`sqlldr |grep 8.1.7 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 8.1.7 for AIX"
    cc -g -O -I. \
    -I$ORACLE_HOME/precomp/public \

    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c

    cc -g -o $1 $1.o  \
    -L$ORACLE_HOME/lib/ \
    -lclntsh \
    -lcore8  \
    -lld \
    -lm \
    `cat $ORACLE_HOME/lib/sysliblist` \
    -lc_r \
    -lpthreads
  fi
# oracle 8.1.6 for AIX
  count=`sqlldr |grep 8.1.6 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 8.1.6 for AIX"
    cc -g -O -I. \
    -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c

    cc -g -o $1 $1.o  \
    -L$ORACLE_HOME/lib/ \
    -lclntsh \
    -lcore8  \
    -lld \
    -lm \
    `cat $ORACLE_HOME/lib/sysliblist` \
    -lc_r \
    -lpthreads
  fi
# oracle 8.1.5 for AIX
  count=`sqlldr |grep 8.1.5 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 8.1.5 for AIX"
  cc -g -O -I. \
    -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c

    cc -g -o $1 $1.o \
    -L$ORACLE_HOME/lib/ \
    -lclntsh \
    -lclient8 \
    $ORACLE_HOME/lib/libsql8.a \
    $ORACLE_HOME/lib/scorept.o \
    $ORACLE_HOME/lib/sscoreed.o \
    $ORACLE_HOME/rdbms/lib/kpudfo.o \
    `cat $ORACLE_HOME/network/lib/ldflags` \
    -ln8 -lnl8 -lnro8 \
    `cat $ORACLE_HOME/network/lib/ldflags` \
    -ln8 -lnl8 -lclient8 -lvsn8 -lcommon8 -lskgxp8 -lgeneric8 \
    `cat $ORACLE_HOME/network/lib/ldflags` \
    -ln8 -lnl8 -lnro8 `cat $ORACLE_HOME/network/lib/ldflags` \
    -ln8 -lnl8 -lclient8 -lvsn8 -lcommon8 -lskgxp8 -lgeneric8 \
    $ORACLE_HOME/lib/libpls8.a \
    $ORACLE_HOME/lib/libplp8.a \
    $ORACLE_HOME/lib/libpls8.a \
    -ltrace8 -lnls8  -lcore8 -lnls8 -lcore8  -lnls8   -lld -lm \
    `cat $ORACLE_HOME/lib/sysliblist` -lm -lc_r -lpthreads
  fi
fi

# for DIGITAL
count=`uname -a | grep alpha | grep -v grep|wc -l`
if [ $count -eq '1' ]
then
# oracle 9.2 for DIGITAL
  count=`sqlldr |grep 9.2 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 9.2 for DIGITAL"
    cc -g1 -O4 -fast -fp_reorder -U_FASTMATH \
    -std1 -DOSF1 -DA_OSF -Wf,-readonly_strings \
    -ieee -noansi_alias -D_INTRINSICS \
    -I. -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
-I$ORACLE_HOME/network/public \
    -c $1.c

    cc -g1 -o $1 $1.o \
    -L$ORACLE_HOME/lib/ \
    -lclntsh \
    `cat $ORACLE_HOME/lib/ldflags`   \
    `cat $ORACLE_HOME/lib/sysliblist`  \
    -lm  \
    -lpthread
  fi
# oracle 8.1.7 for DIGITAL
  count=`sqlldr |grep 8.1.7 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 8.1.7 for DIGITAL"
    cc -g1 -O4 -fast -fp_reorder -U_FASTMATH \
    -std1 -DOSF1 -DA_OSF -Wf,-readonly_strings \
    -ieee -noansi_alias -D_INTRINSICS   \
    -I. -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
      -I$ORACLE_HOME/network/public \
    -c $1.c

    cc -g -o $1 $1.o  \
    -L$ORACLE_HOME/lib/ \
    -lclntsh \
    `cat $ORACLE_HOME/lib/sysliblist` \
    -lm  \
    -lpthread
  fi
# oracle 8.1.6 for DIGITAL
  count=`sqlldr |grep 8.1.6 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 8.1.6 for DIGITAL"
    cc -g1 -O4 -fast -fp_reorder -U_FASTMATH \
    -std1 -DOSF1 -DA_OSF -Wf,-readonly_strings \
    -ieee -noansi_alias -D_INTRINSICS   \
    -I. -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c
   cc -g -o $1 $1.o  \
    -L$ORACLE_HOME/lib/ \
    -lclntsh \
    `cat $ORACLE_HOME/lib/sysliblist` \
    -lm  \
    -lpthread
  fi
# oracle 8.1.5 for DIGITAL
  count=`sqlldr |grep 8.1.5 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 8.1.5 for DIGITAL"
    cc -g1 -O4 -fast -fp_reorder -U_FASTMATH \
    -std1 -DOSF1 -DA_OSF -Wf,-readonly_strings \
    -noansi_alias -D_INTRINSICS  \
    -I. -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c
    cc -o $1 $1.o  \
    -L$ORACLE_HOME/lib/ -lclntsh
  fi
fi
# for HP-UX
count=`uname -a | grep HP-UX | grep -v grep|wc -l`
if [ $count -eq '1' ]
then
# oracle 9.2 for HP-UX
  count=`sqlldr |grep 9.2 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 9.2 for HP-UX"
    cc -g -I. -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c

    cc -o $1 $1.o  \
    -L$ORACLE_HOME/lib/ -lclntsh  \
    `cat $ORACLE_HOME/lib/sysliblist` \
    -lm -lpthread -lpthread
  fi

# oracle 8.1.7 for HP-UX
  count=`sqlldr |grep 8.1.7 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 8.1.7 for HP-UX"
    cc -g -I. -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c

    cc -o $1 $1.o  \
    -L$ORACLE_HOME/lib/ -lclntsh  \
    `cat $ORACLE_HOME/lib/sysliblist` \
    -lm -lpthread -lpthread
  fi

# oracle 8.1.6 for HP-UX
  count=`sqlldr |grep 8.1.6 |grep -v grep|wc -l`
  if [ $count -eq '1' ]
  then
    echo "Compile $1 under oracle 8.1.6 for HP-UX"
    cc -g -I. -I$ORACLE_HOME/precomp/public \
    -I$ORACLE_HOME/rdbms/public \
    -I$ORACLE_HOME/rdbms/demo \
    -I$ORACLE_HOME/plsql/public \
    -I$ORACLE_HOME/network/public \
    -c $1.c

    cc -o $1 $1.o  \
    -L$ORACLE_HOME/lib/ -lclntsh  \
    `cat $ORACLE_HOME/lib/sysliblist` \
    -lm -lpthread -lpthread
  fi
fi
作者: hecm23    时间: 2003-06-24 08:09
标题: 一个非常奇怪的现象! 请教各位!
Proc 一般都和系统头文件, 库函数有关, 系统升级後Oracle 最好重装
作者: 老技术员    时间: 2003-06-24 09:17
标题: 一个非常奇怪的现象! 请教各位!
[quote]原帖由 "hecm23"]Proc 一般都和系统头文件, 库函数有关, 系统升级後Oracle 最好重装[/quote 发表:
   


   目的主机(M85) 的操作系统及oracle 数据库都是新安装的!
作者: oraix    时间: 2003-06-24 09:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 老技术员    时间: 2003-06-25 08:36
标题: 一个非常奇怪的现象! 请教各位!
盘上没有注明,据说是32位的! 怎么确认32位还是64位?
作者: hecm22    时间: 2003-06-25 09:25
标题: 一个非常奇怪的现象! 请教各位!
[quote]原帖由 "老技术员"]盘上没有注明,据说是32位的! 怎么确认32位还是64位?[/quote 发表:
     

cd $ORACLE_HOME/bin
file oracle
作者: rollingpig    时间: 2003-06-25 10:45
标题: 一个非常奇怪的现象! 请教各位!
XCOFF32 object files are not allowed in 64-bit mode.

显然问题出在这里了
作者: 老技术员    时间: 2003-06-25 13:01
标题: 一个非常奇怪的现象! 请教各位!
原帖由 "hecm22" 发表:
   

cd $ORACLE_HOME/bin
file oracle
   


其结果如下:
oracle:         executable (RISC System/6000) or object module not stripped

没有说明是32 /64 位!     

可有时能编译通过! 而且可以使用~     
不会因为oracle是32位 而造成的吧, 以前用的H70也是64位机啊,怎么没有这个怪现象!?
作者: oraix    时间: 2003-06-25 14:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 老技术员    时间: 2003-06-27 09:00
标题: 一个非常奇怪的现象! 请教各位!
哦!
谢谢!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2