From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3579 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: Compile error doing cross build on arm Date: Mon, 8 Jul 2013 14:35:17 -0400 Message-ID: <20130708183517.GJ29800@brightrain.aerifal.cx> References: <20130708155802.24215.17389@urza> <20130708195152.0704f577@ralda.gmx.de> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1373308529 31944 80.91.229.3 (8 Jul 2013 18:35:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 8 Jul 2013 18:35:29 +0000 (UTC) Cc: ian@zenhack.net To: musl@lists.openwall.com Original-X-From: musl-return-3583-gllmg-musl=m.gmane.org@lists.openwall.com Mon Jul 08 20:35:31 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UwGHa-0006SS-FE for gllmg-musl@plane.gmane.org; Mon, 08 Jul 2013 20:35:30 +0200 Original-Received: (qmail 21959 invoked by uid 550); 8 Jul 2013 18:35:29 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 21951 invoked from network); 8 Jul 2013 18:35:29 -0000 Content-Disposition: inline In-Reply-To: <20130708195152.0704f577@ralda.gmx.de> User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3579 Archived-At: On Mon, Jul 08, 2013 at 07:51:52PM +0200, Harald Becker wrote: > Hi Ian ! > > 08-07-2013 11:58 Ian Denhardt : > > > So I just hit a compilation error trying to cross compile musl > > for arm: > > -fno-stack-protector -c -o src/stdio/vfwprintf.o > > src/stdio/vfwprintf.c src/stdio/vfwprintf.c: In function > > 'wprintf_core': src/stdio/vfwprintf.c:195:3: error: pointer > > targets in passing argument 2 of 'wcsspn' differ in signedness > > [-Werror=pointer-sign] In file included from > > src/stdio/vfwprintf.c:7:0: ./include/wchar.h:62:8: note: > > expected 'const wchar_t *' but argument is of type 'int *' cc1: > > > CFLAGS= -Os -pipe -fomit-frame-pointer -fno-unwind-tables > > -fno-asynchronous-unwind-tables -Wa,--noexecstack > > -falign-functions=1 -falign-labels=1 -falign-loops=1 > > -falign-jumps=1 -Werror=implicit-function-declaration > > -Werror=implicit-int -Werror=pointer-sign -Werror=pointer-arith > > -fno-stack-protector CFLAGS_C99FSE = -std=c99 -nostdinc > > -ffreestanding -fexcess-precision=standard -frounding-math > > It is curious, but I had similar compile error on native ARM > compile (gcc 4.6.4). They vanished after removing some of the > option on my CFLAGS list. Didn't analyze this, but probable > candidates the unwind-tables and math options. So play a bit with > your CFLAGS list, try "CFLAGS=-Os" if problem vanishes. The direct source of this error is that the compiler's wchar_t is defined as int rather than unsigned. ARM EABI requires (stupidly) that wchar_t be unsigned, so we follow that. The indirect cause of the error, and the real problem, is almost surely that the compiler was configured for old, pre-EABI ARM ABI. This ABI is NOT supported by musl, and will lead to various major problems that could otherwise go undetected for a long time, like misaligned structures (the old ABI only had 4-byte alignment for 64-bit types, for example). So this issue needs to be checked and fixed before moving ahead. Rich