`The rubyist'【えぬ】の日記

 | 

2009-01-31

1.9.1のビルドがparse.cのコンパイルで詰まっていた件 1.9.1のビルドがparse.cのコンパイルで詰まっていた件 - `The rubyist'【えぬ】の日記 を含むブックマーク はてなブックマーク - 1.9.1のビルドがparse.cのコンパイルで詰まっていた件 - `The rubyist'【えぬ】の日記

trunkからビルドしていた頃からこの問題に遭遇し、gcc 4.2では問題がなかったのでそっちを使ってビルドを行うようにしていたが、2chおよびIRCで「optflags=-O3なら問題ない」とあったので試してみる。

以下にconfigure時の最適化フラグの渡し方とparse.cコンパイル時のgccコマンドを記載。

a)だと詰まってしまうが、b)だとコンパイルに成功した。

a) % CFLAGS="-O3 -pipe" ./configure
gcc -O3 -pipe -O2 -g -Wall -Wno-parentheses  -fPIC  -I. -I.ext/include/i686-linux -I./include -I.  -DRUBY_EXPORT   -o parse.o -c parse.c

b) % optflags="-O3 -pipe" ./configure
gcc -O3 -pipe -g -Wall -Wno-parentheses  -fPIC  -I. -I.ext/include/i686-linux -I./include -I.  -DRUBY_EXPORT   -o parse.o -c parse.c

今までこの手のフラグ指定はずっとCFLAGSでやっていたのではまってしまったのか。

ちなみにoptflagsはREADME.jaにも書かれていた。

 * コンパイル・インストール

以下の手順で行ってください.

  1. (snip)

  2. configureを実行してMakefileなどを生成する

     環境によってはデフォルトのCコンパイラ用オプションが付き
     ます.configureオプションで optflags=.. warnflags=.. 等
     で上書きできます.

が、configure --helpしてもoptflagsの単語は一切出てこないので意識していなかった模様…

% ./configure --help

`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

(snip)
Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  CPP         C preprocessor

(snip)
 |