Alright, then which Make file do we need to fix to make sure GCC is called correctly? Also, I remember reading that some time during the 4.x GCC series GCC switched to auto-detecting the arch to be that of the machine being used. Could someone try to just switch GCC to a newer version and see if it automatically stops trying to use i386, leading to Simon's problem?
On Thu, Jul 17, 2014 at 8:37 AM, Niklas Larsson <metanik...@gmail.com> wrote: > It certainly shouldn't be built with i386, because that is generating code > for a processor that lacks all these fancy atomic instructions. The first of > them appears on the 486. > > i686 should be safe, it goes all the way back to Pentium Pro. > > > 2014-07-17 8:33 GMT+02:00 Johan Tibell <johan.tib...@gmail.com>: > >> A perhaps silly question, *should* ghc-prim be built with i386 or i686? >> >> On Thu, Jul 17, 2014 at 8:33 AM, Niklas Larsson <metanik...@gmail.com> >> wrote: >> > I just found exactly the same thing! Well, I used i686 instead. >> > >> > Sounds like it's worthwhile to see if this is limited to ghc-prim or if >> > there's more stuff that's built with i386. >> > >> > >> > 2014-07-17 8:21 GMT+02:00 Páli Gábor János <pali.ga...@gmail.com>: >> > >> >> 2014-07-17 0:51 GMT+02:00 Páli Gábor János <pali.ga...@gmail.com>: >> >> > 2014-07-17 0:47 GMT+02:00 Niklas Larsson <metanik...@gmail.com>: >> >> >> I hope they can just be done away with at the source, that is to >> >> >> make >> >> >> gcc >> >> >> generate the assembly primitives. GHC should already be built with >> >> >> i686, but >> >> >> does that reach ghc-prim? >> >> > >> >> > This depends on GCC -- if no -march=XXX is explicitly set, I guess it >> >> > will take its default, which may vary platform by platform. >> >> >> >> All right, I have finally got a Windows (x64) machine and installed >> >> the msys2 environment by the GHC wiki [1]. This has GCC 4.5.2 (as >> >> Niklas wrote earlier), where the default -march is i386. You should >> >> see this line when trying to compile Johan's test program with the -v >> >> flag set: >> >> >> >> COLLECT_GCC_OPTIONS= ... '-v' '-mtune=i386' '-march=i386' >> >> >> >> With the -march=i586 flag explicitly set in the command line, no >> >> __sync_fetch_and_add_n() calls are generated. >> >> >> >> [1] >> >> >> >> https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows/MSYS2 >> > >> > > > _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs