tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] Compile Libbtc for Apple M1 with tcc


From: Niklas Rosencrantz
Subject: Re: [Tinycc-devel] Compile Libbtc for Apple M1 with tcc
Date: Tue, 11 Jan 2022 08:45:51 +0100

Thank you. I'll try it a.s.a.p.

The reason I don't try the change immediately is that I use my own experimental branch of TCC on my Apple M1.
I installed it on the system for educational purposes. 

It might work to do ./configure CC=/tmp/path_to_mod_tcc/tcc but I didn't try to install several versions.
TCC has been competent for me on Apple M1. TCC could compile itself on Apple M1 with the cpu=x86_64 configuration.

Regards,
Niklas



On Tue, Jan 11, 2022 at 7:12 AM Christian Jullien <eligis@orange.fr> wrote:
>
> Hi, tcc port on Apple M1 is not too bad as long as you accept it generates code for x86_64 which is then translated by rosetta.
>
> That said, your problem is that tcc does not define __LITTLE_ENDIAN__ as gcc does
>
> jullien@mobley:~ $ tcc -dM -E - < /dev/null | grep END | sort
> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
> #define __ORDER_BIG_ENDIAN__ 4321
> #define __ORDER_LITTLE_ENDIAN__ 1234
>
> jullien@mobley:~ $ gcc -dM -E - < /dev/null | grep END | sort
> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
> #define __LITTLE_ENDIAN__ 1
> #define __ORDER_BIG_ENDIAN__ 4321
> #define __ORDER_LITTLE_ENDIAN__ 1234
> #define __ORDER_PDP_ENDIAN__ 3412
>
> You can see that __LITTLE_ENDIAN__ is missing for tcc
>
> I've just added this missing definition on mod, you can test it right now.
>
> C.
>
> -----Original Message-----
> From: Tinycc-devel [mailto:tinycc-devel-bounces+eligis=orange.fr@nongnu.org] On Behalf Of david.koch@libertysurf.fr
> Sent: Tuesday, January 11, 2022 03:48
> To: tinycc-devel@nongnu.org
> Subject: [Tinycc-devel] Re : Compile Libbtc for Apple M1 with tcc
>
> Hi, the M1 chip is an ARM64 processor, not a x86_64 one.
>
> Perhaps the ARM support of TCC is not up to par with its x86 counterpart.
>
> Good luck anyway.
>
> Regards.
>
> ----- Mail d'origine -----
> De: Niklas Rosencrantz <niklasro@gmail.com>
> À: tinycc-devel@nongnu.org
> Envoyé: Mon, 10 Jan 2022 23:49:04 +0100 (CET)
> Objet: [Tinycc-devel] Compile Libbtc for Apple M1 with tcc
>
> Hello,
>
> Trying to compile Libbtc for Apple M1 with tcc. It worked with an Apple
> Intel machine and setting CC=tcc. Since tcc can build it on the Intel with
> macOS I try ask here if you might know the cause of the failure. With the
> Apple M1 the following message comes from make
>
> In file included from ./include/btc/serialize.h:34:
> In file included from ./include/btc/portable_endian.h:22:
> /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/OSByteOrder.h:314:
> error: #error Unknown endianess.
> make[1]: *** [src/tools/bitcointool-bitcointool.o] Error 1
>
>
> Build Options:
>   with ecmult precomp     = yes
>   with external callbacks = no
>   with benchmarks         = yes
>   with tests              = yes
>   with openssl tests      = no
>   with coverage           = no
>   module ecdh             = no
>   module recovery         = yes
>   module extrakeys        = no
>   module schnorrsig       = no
>
>   asm                     = no
>   ecmult window size      = 15
>   ecmult gen prec. bits   = 4
>
>   valgrind                = no
>   CC                      = tcc
>   CFLAGS                  = -O2 -fvisibility=hidden -std=c89 -pedantic
> -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes
> -Wundef -Wno-unused-function -Wno-long-long -Wno-overlength-strings -W -g
>   CPPFLAGS                = -I/opt/homebrew/opt/valgrind/include
>   LDFLAGS                 =
>
>   CC_FOR_BUILD            = tcc
>   CFLAGS_FOR_BUILD        = -O2 -fvisibility=hidden -std=c89 -pedantic
> -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes
> -Wundef -Wno-unused-function -Wno-long-long -Wno-overlength-strings -W -g
>   CPPFLAGS_FOR_BUILD      = -I/opt/homebrew/opt/valgrind/include
>   LDFLAGS_FOR_BUILD       =
>
> Options used to compile and link:
>   with wallet   = yes
>   with tools    = yes
>   with net      = yes
>
>   target os     = darwin
>
>   CC            = tcc
>   CFLAGS        = -g -O2 -W -std=gnu99 -pedantic -Wno-unused-function
> -Wno-long-long -Wno-overlength-strings -Werror=return-type
>   CXX           =
>   CXXFLAGS      =
>   LDFLAGS       =
>
>
> _______________________________________________
> Tinycc-devel mailing list
> Tinycc-devel@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>
>
> _______________________________________________
> Tinycc-devel mailing list
> Tinycc-devel@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel

reply via email to

[Prev in Thread] Current Thread [Next in Thread]