Euphoria
Ticket #871:
Build error
-
Reported by
gbonvehi
Apr 30, 2013
I did a clean checkout from HG. When I tried to build, eui or eub (I don't remember) would complain about eudir being already defined, it is defined in the eu.cfg generated inside the build directory and also passed by command-line by the Makefile.gnu. This happened only to the "external" tools like eudist, eudis, eutest, etc. defined inside Makefile.gnu.
I removed the command-line -eudir parameter in Makefile.gnu and eudist and the rest of the tools built correctly.
Hg export patch: http://openeuphoria.org/pastey/215.wc
Details
1. Comment by mattlewis
Apr 30, 2013
I'm not getting this. What eubin are you using? I used:
$ eui -v
Euphoria Interpreter v4.1.0 development
64-bit Linux, Using System Memory
Revision Date: 2013-04-15 22:28:34, Id: 6112:ca9cd0a77eff
2. Comment by jimcbrown
Apr 30, 2013
Shouldn't the tools (like eudist) be built with the new binaries just built, as opposed to the eubins, anyways?
3. Comment by mattlewis
Apr 30, 2013
They are built using $(TRANSLATE), so they are translated with whatever translated everything else.
4. Comment by jimcbrown
Apr 30, 2013
Why?
5. Comment by mattlewis
Apr 30, 2013
For one thing, using $(TRANSLATE) is the only way to cross compile these things. I suppose we could make things more complicated and go back to using the new translator, but I'm not sure it's worth the hassle.
Actually, Jim, I think you were the one who had that idea (I recall despairing over how to cross compile those). 
6. Comment by jimcbrown
Apr 30, 2013
Ah, yes, I recall that.
Hmm... I think what I had in mind was if HOST==TARGET, then use the newly built binaries, else use the eubins. But, that's not really KISS.
7. Comment by gbonvehi
Apr 30, 2013
I was compiling:
Euphoria Interpreter v4.1.0 development
32-bit Linux, Using System Memory
Revision Date: 2013-04-30 04:49:42, Id: 6115:f77899bf64e8
As eubins I used
Euphoria Interpreter v4.1.0 development
32-bit Linux, Using System Memory
Revision Date: 2011-06-30 16:06:49, Id: 5038:3739d931e005
I did what it seems to be the new standard way of building, clone hg, create eu-build directory, run ../euphoria/source/configure make
8. Comment by jimcbrown
Apr 30, 2013
I recall sometime back there was a bug with duplicate parameters in eu.cfg and those passed on the command line directly conflicting, but that was fixed.
I don't recall which commit fixed it, but looking at the scm log, my guess is that your eubin is missing one of (or maybe both):
http://scm.openeuphoria.org/hg/euphoria/rev/d693732aec93
http://scm.openeuphoria.org/hg/euphoria/rev/0b744294d825
9. Comment by jimcbrown
Apr 30, 2013
Try doing the build with your newly built binaries as the eubins, and a reverted Makefile.gnu - it should work ok even though both the command line and eu.cfg specify eudir.
10. Comment by gbonvehi
Apr 30, 2013
Indeed it work. I guess it's a matter of updating the eubins then. I can upload them somewhere if you want to. Just in case, libraries linked against (in case you've some special need):
-> ~/lang/eu-build $ ldd eui
linux-gate.so.1 (0xb772e000)
libm.so.6 => /usr/lib/libm.so.6 (0xb76cb000)
libdl.so.2 => /usr/lib/libdl.so.2 (0xb76c6000)
libresolv.so.2 => /usr/lib/libresolv.so.2 (0xb76ae000)
libnsl.so.1 => /usr/lib/libnsl.so.1 (0xb7695000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0xb767a000)
libc.so.6 => /usr/lib/libc.so.6 (0xb74ca000)
/lib/ld-linux.so.2 (0xb772f000)
This is Arch running up to date.
11. Comment by gbonvehi
Apr 30, 2013
I guess we can set this as invalid, it's just a matter of uploading some newer 32-bit linux eubins to the correct place.
Thanks,
Guillermo