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