buildsystem: fix build errors for x86 on OSX
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>
This commit is contained in:
parent
cb3a6387c8
commit
10b559663e
2 changed files with 12 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue