hughperman / pure-lang

Automatically exported from code.google.com/p/pure-lang
0 stars 0 forks source link

stlvec 0.2 build failure #67

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. make

What is the expected output? What do you see instead?
Expected successful build; got attached log (using MacPorts)

What version of the product are you using? On what operating system?
pure 0.51, stlvec 0.2, OS X 10.6.8, Xcode 3.2.6

Please provide any additional information below.

Original issue reported on code.google.com by ryandesi...@gmail.com on 23 Dec 2011 at 1:13

GoogleCodeExporter commented 8 years ago

Original comment by ryandesi...@gmail.com on 23 Dec 2011 at 1:14

Attachments:

GoogleCodeExporter commented 8 years ago
Hi Ryan,

Everything works on my Linux box. I don't use my Mac for programming, so I am 
just guessing here. In pure-stlvec/Makefile, CONTAINER_LIB is defined for 
WINDOWS ONLY. Maybe this should be defined for OSX.

# WINDOWS ONLY: needed to link stlalgorithm.dll.
CONTAINER_LIB = $(DLL_DIR)/stlcontainer$(DLL)

Also, please try make clean, make.

Peter

Original comment by p.summer...@gmail.com on 23 Dec 2011 at 5:49

GoogleCodeExporter commented 8 years ago
Hi Ryan,

this should also be fixed in rev. 7188b1f23405. Can you please give it another 
go?

The trouble is that the stlalgorithm dll depends on some stuff in the 
stlcontainer dll. Linux doesn't really care about unresolved externs when 
linking dynamically loadable modules, but other systems do, so I added 
stlcontainer$(DLL) to the stlalgorithm link line on all systems now. 
Unfortunately, this is a bit tricky to get right without using libtool. The way 
I solved this is to employ the -rpath linker option which works on both Linux 
and Windows, but I'm not sure whether it's supported on OSX. Please let me know 
if it works for you.

If the compile goes through, you might want to test whether the linked 
stlalgorithm module actually works. You can do this as follows:

- After compiling, run 'make test'. This shouldn't print any error messages. (I 
don't think that the exit code is useful, though, so you'll have to sift 
through the produced output to see whether it contains any error messages 
indicating that stlcontainer.dylib couldn't be loaded.)

- After installing the package, start the Pure interpreter from a shell *not* 
in the pure-stlvec source directory (your home directory will do) and type the 
following:

  using stlvec::nonmodifying;

  This shouldn't print any error.

Albert

Original comment by aggraef@gmail.com on 27 Dec 2011 at 10:08

GoogleCodeExporter commented 8 years ago
Just for the record, here's how the output from 'make test' should look like if 
everything is in good working order.

Original comment by aggraef@gmail.com on 27 Dec 2011 at 10:46

Attachments:

GoogleCodeExporter commented 8 years ago
ld: unknown option: -rpath=/opt/local/lib/pure

Original comment by ryandesi...@gmail.com on 2 Jan 2012 at 7:25

GoogleCodeExporter commented 8 years ago
Bad luck. :( So it looks like we need -install_name instead. Can you please try 
whether the attached Makefile works any better?

Original comment by aggraef@gmail.com on 2 Jan 2012 at 10:17

Attachments: