]> Zhao Yanbai Git Server - minix.git/commitdiff
buildsystem: fix build errors for x86 on OSX 64/2864/1
authorThomas Veerman <tveerman@gmail.com>
Wed, 15 Oct 2014 08:59:38 +0000 (10:59 +0200)
committerLionel Sambuc <lionel@minix3.org>
Tue, 4 Nov 2014 10:00:29 +0000 (11:00 +0100)
Define _NLS_PRIVATE in tools/llvm-tblgen/Makefile so that
<tools/compat/nl_types.h> will pull in <include/nl_types.h>. This is
necessary as Clang's c++/v1/locale implementation contains references
to catopen and other catalog symbols that aren't defined anywhere.
Moreover, the compiler will complain about NL_CAT_LOCALE not being
declared. The compat nl_types.h fixes these discrepancies.

However, <nl_types.h> uses __format_arg to add function attributes to
declarations. On NetBSD __format_arg(fmtarg) is defined by
<sys/cdefs.h> to be __attribute__((__format_arg__ (fmtarg))) for
briefness, but other platforms don't do that. Consequently, the build
will fail on catopen and friends function declarations because the
compiler doesn't know how to handle __format_arg(fmtarg). A fixup to
<tools/compat/nl_types.h> takes care of this, but it won't win any
beauty contest.

Change-Id: Ic4426eca8385aeef858e60304d6e8c06cd497d95
Signed-off-by: Thomas Veerman <tveerman@gmail.com>
tools/compat/nl_types.h
tools/llvm-tblgen/Makefile

index 1c114eb8a34ce94188e7078cb79b89952c14a1ce..9bb482da48d94c9e9a1fc06313e9e5ea92671e4e 100644 (file)
@@ -1,5 +1,15 @@
 /*     $NetBSD: nl_types.h,v 1.1 2002/01/29 10:20:32 tv Exp $  */
 
 #ifdef _NLS_PRIVATE
+
+/* #if defined(__minix) */
+/* <sys/cdefs> defines __format_arg, but on some other platforms it doesn't.
+ * <nl_types.h> includes <sys/cdefs> because it needs __format_arg. As it might
+ * not be defined, we do it here as a work around. */
+#ifndef __format_arg
+#define __format_arg(fmtarg)   __attribute__((__format_arg__ (fmtarg)))
+#endif
+/* #endif defined(__minix) */
+
 #include "../../include/nl_types.h"
 #endif
index 7690b24d0bf46e33317ecfbd8dd826a155131d5f..b5f8468191cf7f6fe59d5e30f640d29526a11849 100644 (file)
@@ -3,5 +3,7 @@
 HOSTPROGNAME=  ${_TOOL_PREFIX}llvm-tblgen
 HOSTPROG_CXX=  ${_TOOL_PREFIX}llvm-tblgen
 HOST_SRCDIR=   external/bsd/llvm/bin/tblgen
+# MINIX, for OSX Crosscompilation support
+CPPFLAGS+=     -D_NLS_PRIVATE=1
 
 .include "${.CURDIR}/../Makefile.host"