From: u-igbb@aetey.se
To: musl@lists.openwall.com
Subject: Re: compiling musl on x86_64 linux with pcc
Date: Wed, 13 Aug 2014 13:22:07 +0200 [thread overview]
Message-ID: <20140813112207.GH5170@example.net> (raw)
In-Reply-To: <20140813102501.GG5170@example.net>
On Wed, Aug 13, 2014 at 12:25:01PM +0200, u-igbb@aetey.se wrote:
> pcc -std=c99 -nostdinc -ffreestanding -fexcess-precision=standard -frounding-math -D_XOPEN_SOURCE=700 -I./arch/x86_64 -I./src/internal -I./include -Os -pipe -fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables -Wa,--noexecstack -Werror=implicit-function-declaration -Werror=implicit-int -Werror=pointer-sign -Werror=pointer-arith -fno-stack-protector -c -o src/env/__init_tls.o src/env/__init_tls.c
> src/env/__init_tls.c:112: error: #else in non-conditional section
> error: XXXXXX/libexec/cpp terminated with status 1
FWIIW, looks like a limitation of the preprocessor in pcc:
__syscall(
#ifdef SYS_mmap2
becomes after -E
__syscall(#ifdef SYS_mmap2 ....
works around easily by moving the conditional out of the parentheses:
------
--- src/env/__init_tls.c.ori 2014-08-13 12:56:35.389032321 +0200
+++ src/env/__init_tls.c 2014-08-13 12:58:49.852815255 +0200
@@ -91,14 +91,17 @@
libc.tls_size = 2*sizeof(void *)+T.size+T.align+sizeof(struct pthread);
if (libc.tls_size > sizeof builtin_tls) {
- mem = (void *)__syscall(
#ifdef SYS_mmap2
+ mem = (void *)__syscall(
SYS_mmap2,
+ 0, libc.tls_size, PROT_READ|PROT_WRITE,
+ MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
#else
+ mem = (void *)__syscall(
SYS_mmap,
-#endif
0, libc.tls_size, PROT_READ|PROT_WRITE,
MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
+#endif
/* -4095...-1 cast to void * will crash on dereference anyway,
* so don't bloat the init code checking for error codes and
* explicitly calling a_crash(). */
------
Othwerwise, pcc does not look robust against arithmetic expressions:
pcc -std=c99 -nostdinc -ffreestanding -fexcess-precision=standard -frounding-math -D_XOPEN_SOURCE=700 -I./arch/x86_64 -I./src/internal -I./include -Os -pipe -fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables -Wa,--noexecstack -Werror=implicit-function-declaration -Werror=implicit-int -Werror=pointer-sign -Werror=pointer-arith -fno-stack-protector -c -o src/math/asinhl.o src/math/asinhl.c
src/math/asinhl.c, line 25: compiler error: Cannot generate code, node 0x5be9e0 op TEMP
error: XXXXXXXX/libexec/ccom terminated with status 1
src/math/asinhl.c:
24: /* |x| >= 2 */
25: x = logl(2*x + 1/(sqrtl(x*x+1)+x));
I will check this one on the pcc list.
Regards,
Rune
next prev parent reply other threads:[~2014-08-13 11:22 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-13 9:18 compiling musl on x86_64 linux with ppc u-igbb
2014-08-13 9:29 ` "pcc" of course ([musl] compiling musl on x86_64 linux with ppc) u-igbb
2014-08-13 9:49 ` compiling musl on x86_64 linux with ppc Szabolcs Nagy
2014-08-13 10:25 ` compiling musl on x86_64 linux with pcc u-igbb
2014-08-13 11:22 ` u-igbb [this message]
2014-08-13 11:53 ` summary: [musl] " u-igbb
2014-08-13 12:38 ` compiling musl on x86_64 linux with ppc Rich Felker
2014-08-13 12:56 ` u-igbb
2014-08-13 14:23 ` Rich Felker
2014-08-13 14:43 ` compiling musl on x86_64 linux with pcc u-igbb
2014-08-13 14:43 ` compiling musl on x86_64 linux with ppc Szabolcs Nagy
2014-08-14 7:10 ` compiling musl on x86_64 linux with pcc u-igbb
2014-08-14 14:20 ` Rich Felker
2014-08-14 14:38 ` u-igbb
2014-08-14 14:47 ` Rich Felker
2014-08-14 15:00 ` u-igbb
2014-08-15 10:49 ` va_list (was: [musl] compiling musl on x86_64 linux with pcc) u-igbb
2014-08-15 13:44 ` Rich Felker
2014-08-15 15:07 ` u-igbb
2014-08-15 15:56 ` Rich Felker
2014-08-15 17:12 ` u-igbb
2014-08-15 8:05 ` compiling musl on x86_64 linux with ppc u-igbb
2014-08-25 8:28 ` compiling musl on x86_64 linux with pcc u-igbb
2014-08-25 8:34 ` u-igbb
2014-08-25 15:46 ` Rich Felker
2014-08-26 19:34 ` u-igbb
2014-08-26 19:54 ` Rich Felker
2014-08-27 7:40 ` u-igbb
2014-08-27 7:54 ` Rich Felker
2014-08-27 8:52 ` variadic args (was: [musl] compiling musl on x86_64 linux with pcc) u-igbb
2014-08-27 16:34 ` Rich Felker
2014-08-28 8:13 ` u-igbb
2014-08-28 14:40 ` Rich Felker
2014-08-28 16:55 ` u-igbb
2014-08-27 14:38 ` compiling musl with pcc (i486-pc-linux-gnu) " u-igbb
2014-08-27 16:36 ` Rich Felker
2014-09-23 19:05 ` compiling musl on x86_64 linux with pcc u-igbb
2014-09-23 19:31 ` Rich Felker
2014-09-24 8:26 ` u-igbb
2014-08-13 23:39 ` compiling musl on x86_64 linux with ppc Isaac Dunham
2014-08-13 23:41 ` Rich Felker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140813112207.GH5170@example.net \
--to=u-igbb@aetey.se \
--cc=musl@lists.openwall.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).