Project

General

Profile

Actions

Bug #9658

closed

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

Added by knu (Akinori MUSHA) over 10 years ago. Updated over 10 years ago.

Status:
Closed
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) over 10 years ago

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

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

Updated by knu (Akinori MUSHA) over 10 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) over 10 years ago

Nobuyoshi Nakada wrote:

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

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

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

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

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

Updated by nagachika (Tomoyuki Chikanaga) over 10 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.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0