[llvm-bugs] [Bug 31504] New: REGRESSION: Including <float.h> causes build failures on darwin when darwin's /usr/include/float.h is present (pre-Lion)

via llvm-bugs llvm-bugs at lists.llvm.org
Sat Dec 31 13:48:02 PST 2016


https://llvm.org/bugs/show_bug.cgi?id=31504

            Bug ID: 31504
           Summary: REGRESSION: Including <float.h> causes build failures
                    on darwin when darwin's /usr/include/float.h is
                    present (pre-Lion)
           Product: clang
           Version: 3.8
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: jeremyhu at apple.com
                CC: dgregor at apple.com, llvm-bugs at lists.llvm.org
    Classification: Unclassified

The include_next <float.h> on darwin causes build failures when using recent
clang/trunk because darwin's /usr/include/float.h (which only exists pre-Lion)
does an #include_next(<float.h>) which fails to resolve.


/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/storage/innobase
$ sudo /opt/local/bin/clang++-mp-devel   -DCOMPILER_HINTS -DHAVE_CONFIG_H
-DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1 -DHAVE_IB_GCC_ATOMIC_COMPARE_EXCHANGE=1
-DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1 -DHAVE_IB_GCC_SYNC_SYNCHRONISE=1
-DHAVE_LIBEVENT1 -DHAVE_LZ4=1 -DHAVE_NANOSLEEP=1 -DMUTEX_EVENT
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/yassl/include
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/include
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/rapidjson/include
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/libbinlogevents/include
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/libbinlogevents/export
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/lz4
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/include
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/handler
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/libbinlogevents/include
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/include
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/sql
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/sql/auth
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/regex
-I/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/yassl/taocrypt/include
-I/opt/local/include  -pipe -Os -stdlib=libc++ -Wall -Wextra -Wformat-security
-Wvla -Woverloaded-virtual -Wno-unused-parameter -Wno-null-conversion
-Wno-unused-private-field -DNDEBUG -DDBUG_OFF -arch x86_64
-mmacosx-version-min=10.6   -o CMakeFiles/innobase.dir/buf/buf0buf.cc.o -c
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/buf/buf0buf.cc
-v
clang version 4.0.0 (trunk 290074)
Target: x86_64-apple-darwin10.8.0
Thread model: posix
InstalledDir: /opt/local/libexec/llvm-devel/bin
 "/opt/local/libexec/llvm-devel/bin/clang" -cc1 -triple
x86_64-apple-macosx10.6.0 -Wdeprecated-objc-isa-usage
-Werror=deprecated-objc-isa-usage -emit-obj -disable-free -main-file-name
buf0buf.cc -mrelocation-model pic -pic-level 2 -mthread-model posix
-mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2
-target-linker-version 274.1 -v -dwarf-column-info -debugger-tuning=lldb
-coverage-notes-file
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/storage/innobase/CMakeFiles/innobase.dir/buf/buf0buf.cc.gcno
-resource-dir /opt/local/libexec/llvm-devel/bin/../lib/clang/4.0.0 -D
COMPILER_HINTS -D HAVE_CONFIG_H -D HAVE_IB_ATOMIC_PTHREAD_T_GCC=1 -D
HAVE_IB_GCC_ATOMIC_COMPARE_EXCHANGE=1 -D HAVE_IB_GCC_ATOMIC_THREAD_FENCE=1 -D
HAVE_IB_GCC_SYNC_SYNCHRONISE=1 -D HAVE_LIBEVENT1 -D HAVE_LZ4=1 -D
HAVE_NANOSLEEP=1 -D MUTEX_EVENT -I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/yassl/include
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/include
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/rapidjson/include
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/libbinlogevents/include
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/libbinlogevents/export
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/lz4
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/include
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/handler
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/libbinlogevents/include
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/include
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/sql
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/sql/auth
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/regex
-I
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/yassl/taocrypt/include
-I /opt/local/include -D NDEBUG -D DBUG_OFF -stdlib=libc++ -Os -Wall -Wextra
-Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter
-Wno-null-conversion -Wno-unused-private-field -fdeprecated-macro
-fdebug-compilation-dir
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/storage/innobase
-ferror-limit 19 -fmessage-length 209 -stack-protector 1 -fblocks
-fobjc-runtime=macosx-10.6.0 -fencode-extended-block-signature -fcxx-exceptions
-fexceptions -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics
-vectorize-loops -vectorize-slp -o CMakeFiles/innobase.dir/buf/buf0buf.cc.o -x
c++
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/buf/buf0buf.cc
clang -cc1 version 4.0.0 based upon LLVM 4.0.0svn default target
x86_64-apple-darwin10.8.0
ignoring nonexistent directory "/usr/include/c++/v1"
ignoring nonexistent directory "/usr/local/include"
#include "..." search starts here:
#include <...> search starts here:

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/yassl/include

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/include

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/rapidjson/include

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/build-x86_64/libbinlogevents/include

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/libbinlogevents/export

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/lz4

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/include

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/handler

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/libbinlogevents/include

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/include

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/sql

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/sql/auth

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/regex

/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/extra/yassl/taocrypt/include
 /opt/local/include
 /opt/local/libexec/llvm-devel/bin/../include/c++/v1
 /opt/local/libexec/llvm-devel/bin/../lib/clang/4.0.0/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)
End of search list.
In file included from
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/buf/buf0buf.cc:33:
In file included from
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/include/ha_prototypes.h:32:
In file included from
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/storage/innobase/include/univ.i:90:
In file included from
/opt/local/var/macports/build/_Users_jeremy_src_macports_macports-ports_databases_mysql57/mysql57/work/mysql-5.7.16/include/my_global.h:47:
In file included from
/opt/local/libexec/llvm-devel/bin/../include/c++/v1/float.h:69:
In file included from
/opt/local/libexec/llvm-devel/bin/../lib/clang/4.0.0/include/float.h:36:
/usr/include/float.h:8:15: fatal error: 'float.h' file not found
#include_next <float.h>
              ^~~~~~~~~
1 error generated.

---

Caused by:

commit f5457ae5ebdeb012f213018a46dfea196ea1a872
Author: Bruno Cardoso Lopes <bruno.cardoso at gmail.com>
Date:   Thu Dec 8 02:13:56 2016 +0000

    [Headers] Enable #include_next<float.h> on Darwin

    Allows darwin targets to provide additional definitions and
    implementation specifc values for float.h

    rdar://problem/21961491

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@289018
91177308-0d34-0410-b5e6-96231b3b80d8

diff --git a/lib/Headers/float.h b/lib/Headers/float.h
index a28269ebeb..0f453d87cb 100644
--- a/lib/Headers/float.h
+++ b/lib/Headers/float.h
@@ -27,9 +27,12 @@
 /* If we're on MinGW, fall back to the system's float.h, which might have
  * additional definitions provided for Windows.
  * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx
+ *
+ * Also fall back on Darwin to allow additional definitions and
+ * implementation-defined values.
  */
-#if (defined(__MINGW32__) || defined(_MSC_VER)) && __STDC_HOSTED__ && \
-    __has_include_next(<float.h>)
+#if (defined(__APPLE__) || (defined(__MINGW32__) || defined(_MSC_VER))) && \
+    __STDC_HOSTED__ && __has_include_next(<float.h>)
 #  include_next <float.h>

---

I suggest you make that conditional on the SDK version as well.  I don't see
the point to this change since we don't ship /usr/include/float.h past Snow
Leopard, and this breaks Snow Leopard and prior.  What am I missing?

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20161231/a18577ac/attachment.html>


More information about the llvm-bugs mailing list