Project

General

Profile

Bug #9658

configure --with-opt-dir=dir と clang の組合せでビルドに失敗する

Added by knu (Akinori MUSHA) about 6 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
2.1.0 and later
[ruby-dev:48062]

Description

ruby 2.1以降で configure に --with-opt-dir=/opt/local を指定すると、

  • checking for printf prefix for long long... が、 clang の吐く clang: warning: argument unused during compilation: '-I /opt/local/include' のせいで失敗し、 config.h に PRI_LL_PREFIX の定義が入らない

  • compiling .../ext/-test-/num2int/num2int.c がこけてビルド失敗

という流れです。

パッチを添付します。

cf.
https://twitter.com/knu/status/421181635455766529
https://gist.github.com/knu/8330662
https://github.com/ruby/ruby/pull/571


Files

571.patch (2.65 KB) 571.patch https://github.com/ruby/ruby/pull/571 knu (Akinori MUSHA), 03/20/2014 03:25 PM

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

  • Status changed from Open to Assigned
  • Assignee changed from nobu (Nobuyoshi Nakada) to knu (Akinori MUSHA)

いいんじゃないでしょうか。
しかし、その警告は本当にただの余計なお世話ですよねぇ。

Updated by knu (Akinori MUSHA) about 6 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

Applied in changeset r45378.


Fix a build problem with clang and --with-opt-dir.

  • configure.in: Fix a build problem with clang and --with-opt-dir. If ruby is configured with --with-opt-dir=dir when using clang as compiler, a warning clang: warning: argument unused during compilation: '-I dir' is emitted almost every time clang compiles a file. Unfortunately, RUBY_CHECK_PRINTF_PREFIX takes any output from the compiler as fatal error, and the check thus fails due to the warning. This is an attempt to fix the problem by adding a flag -Qunused-arguments to CFLAGS locally in the function to suppress the warning. [ruby-dev:48062] [Bug #9658] [Fixes GH-571] https://github.com/ruby/ruby/pull/571

Updated by knu (Akinori MUSHA) about 6 years ago

Nobuyoshi Nakada wrote:

いいんじゃないでしょうか。

trunkに入れました。2.1にもそのまま当たり、同じように直ると思います。

しかし、その警告は本当にただの余計なお世話ですよねぇ。

  • コンパイラのフラグはソースファイル群に対してまとめて指定する
  • -Idirの先のヘッダファイルをincludeするかどうかは個々のソースファイル次第

なので、目障りなケースが多いのは事実ですね。
-Iについてだけ警告を抑制できるようなきめ細かい指定があればいいのですが。

Updated by nagachika (Tomoyuki Chikanaga) almost 6 years ago

  • Backport changed from 2.0.0: UNKNOWN, 2.1: REQUIRED to 2.0.0: UNKNOWN, 2.1: DONE

Backported into ruby_2_1 branch at r46402.

Also available in: Atom PDF