On Wed, 2021-01-20 at 10:07 -0500, Craig Treleaven wrote: > > I’m running these on an older MacBook Pro (Core i7) which identifies > thusly: > > $ uname -m > x86_64 > $ uname -rs > Darwin 14.5.0 > > Running config.guess gives: > > $ ./config.guess > i386-apple-darwin14.5.0 > > If I omit the build flag, configure says (in part): > > ./configure --prefix=/opt/local > ... > checking build system type... i386-apple-darwin14.5.0 > checking host system type... i386-apple-darwin14.5.0 > Check for arch/386//gforth.ld (false) > > But it fails testing: > > --- ./test/coretest.out 2013-10-11 17:31:28.000000000 -0400 > *************** > *** 1,10 **** > ! redefined { > ! > ! Floating point exception: 8. > ! INCORRECT RESULT: { -1 S>D 1 FM/MOD -> 0 -1 } > ! INCORRECT RESULT: { -2 S>D 1 FM/MOD -> 0 -2 } > ! INCORRECT RESULT: { 1 S>D -1 FM/MOD -> 0 -1 } > ! INCORRECT RESULT: { 2 S>D -1 FM/MOD -> 0 -2 } > ! INCORRECT RESULT: { 7 S>D -3 FM/MOD -> -2 -3 } > ! INCORRECT RESULT: { -7 S>D 3 FM/MOD -> 2 -3 } > ! INCORRECT RESULT: { -7 S>D -3 FM/MOD -> -1 2 } > --- 1,17 ---- > ! redefined { redefined GDX YOU SHOULD SEE THE STANDARD GRAPHIC > CHARACTERS: > ! !"#$%&'()*+,-./0123456789:;<=>?@ > ! ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` > ! abcdefghijklmnopqrstuvwxyz{|}~ > ! YOU SHOULD SEE 0-9 SEPARATED BY A SPACE: > ! 0 1 2 3 4 5 6 7 8 9 > ! YOU SHOULD SEE 0-9 (WITH NO SPACES): > ! 0123456789 > ! YOU SHOULD SEE A-G SEPARATED BY A SPACE: > ! A B C D E F G > ! YOU SHOULD SEE 0-5 SEPARATED BY TWO SPACES: > ! 0 1 2 3 4 5 > ! YOU SHOULD SEE TWO SEPARATE LINES: > ! LINE 1 > ! LINE 2 > ! you should see this first. > ! you should see this later. > make[3]: *** [checkone] Error 1
As Anton Ertl already said, this should not happen and represents build breakage. On the other hand, his comments re multiarch detection notwithstanding, on a i386/x86_64 multiarch machine it should matter whether your _build_ triple is x86_64-* or i386-*, only whether your _host_ triple is. To reiterate, the _build_ setting is there, in theory, to tell `configure` what machine you’re going to run `make` on, which in the overwhelming majority of cases should be the same machine `configure` itself is running on, and thus best left to autodetection. (In practice, I believe it is there for symmetry with _host_ and to help you when `config.guess` fails, i.e. when `configure` can’t tell what machine it’s running on.) Regarding these, > ./configure --prefix=/opt/local --build=x86_64 > ... > checking build system type... x86_64-pc-none > checking host system type... x86_64-pc-none > Check for arch/amd64//gforth.ld (false) > > [snip] > > ./configure --prefix=/opt/local --build=aarch64 > > [snip] > > If I pass just “-build=arm”, [snip] it appears to me that you misunderstand what these settings are doing. (Sorry if I’m guessing wrong.) Both build and host are _triples_, that is, of the form CPU-VENDOR-OS (or sometimes CPU-VENDOR-KERNEL-LIBC), and anything else you can pass in the place of a triple is a convenient abbreviation (expanded by code in `config.sub`, which, unlike the Lovecraftian horror that is the generated `configure`, is completely readable). In particular, it is a convenient abbreviation that does not depend on the machine you’re using (i.e. `config.sub` does not invoke or otherwise touch `config.guess`). Thus e.g. setting host to `arm` does not mean "build for an ARM version of whatever OS I am currently using", it means "build for a generic ARM environment" or, depending on context, "build for a freestanding, OS- less ARM environment", which is almost certainly not what you want. That anything even works on macOS when you set build to x86_64 (without further qualification) is, as far as I can tell, mostly due to a coincidence of matching defaults. (The presence of `x86_64-pc-none` in the output is a clue.) -- Good luck, Alex
signature.asc
Description: This is a digitally signed message part