What is the version of your clang? It seems it doesn't support __float128.
JE itself doesn't use long double, so you may try adding
#define Sleef_quad_DEFINED
or add -DSleef_quad_DEFINED into the CFLAGS


> On 6 Mar 2022, at 3:49 AM, Raul Miller <[email protected]> wrote:
> 
> Building with clang fails like this:
> 
> cc -c -o a.o ../../../../jsrc/a.c  -fPIC -O2 -fvisibility=hidden
> -fno-strict-aliasing   -Werror -Wextra -Wno-unknown-warning-option
> -Wsign-compare  -Wtautological-constant-out-of-range-compare
> -Wuninitialized  -Wno-char-subscripts  -Wno-consumed
> -Wno-delete-non-abstract-non-virtual-dtor  -Wno-empty-body
> -Wno-implicit-float-conversion  -Wno-implicit-int-float-conversion
> -Wno-int-in-bool-context  -Wno-missing-braces  -Wno-parentheses
> -Wno-pass-failed  -Wno-pointer-sign  -Wno-pointer-to-int-cast
> -Wno-sometimes-uninitialized  -Wno-string-plus-int
> -Wno-unknown-pragmas  -Wno-unsequenced  -Wno-unused-but-set-variable
> -Wno-unused-function  -Wno-unused-parameter  -Wno-unused-value
> -Wno-unused-variable  -DSLEEF=1 -DEMU_AVX=1 -DC_AVX=1   -mavx
> In file included from ../../../../jsrc/a.c:6:
> In file included from ../../../../jsrc/j.h:164:
> ../../../../jsrc/../sleef/include/sleef.h:140:9: error: unknown type
> name '__float128'
> typedef __float128 Sleef_quad;
>        ^
> 1 error generated.
> 
> (This is on a different system from the one that was failing earlier.
> I'm going to take some time to look into this, and maybe there's a
> simple solution.)
> 
> ((I should also mention, since I keep thinking this, but never seem to
> talk about it: that I Really Wish that compiler context feature tests
> were implemented modularly. Like: a feature test directory with a
> makefile (to represent dependencies between feature tests) which
> generates environmental variable declarations (one env var per file,
> one file per feature, and then at the end of the makefile hierarchy a
> cat command to build a shell include script with env var settings for
> all features. Except, of course, the c preprocessor SYS mechanism
> doesn't adequately support this kind of approach.))
> 
> FYI,
> 
> -- 
> Raul
> 
> On Fri, Feb 25, 2022 at 11:55 PM bill lam <[email protected]> wrote:
>> 
>> Can you also try compile with clang?
>> 
>> On Sat, 26 Feb 2022 at 12:47 PM Raul Miller <[email protected]> wrote:
>> 
>>> I am trying to compile J (on a nonavx linux system -- celeron
>>> processor), and I'm running into a memory alignment issue.
>>> 
>>> Specifically, test/g022.ijs triggers a segmentation fault, and when
>>> compiling, I'm getting a variety of warnings that the ABI for passing
>>> parameters with 32-byte alignment has changed in GCC 4.6
>>> 
>>> So, before I go digging into the details of what's going on here, I
>>> was wondering if anyone else had run into this issue, and (if so) how
>>> they dealt with it.
>>> 
>>> (I should also confess that I might not have properly handled the
>>> non-avx architecture:  I altered make2/build-all.sh so that it, by
>>> default, always sets j64x=j64 for linux, for my builds. Hopefully
>>> that's not an issue, but when debugging I have found that it often
>>> pays to be a bit skeptical that I've done the right thing.)
>>> 
>>> Thanks,
>>> 
>>> --
>>> Raul
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> 
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to