Closed dabelknap closed 11 years ago
I think you need to include: src/vmestream/VMEStream_PC.o
and $SOFTIPBUS/circular_buffer.o
in this line:
gcc -g -Wall -Iinclude -I/afs/cern.ch/user/d/dbelknap/softipbus/include -std=c99 lib/libvmestream.a tests/VMEStream_tests.c -o tests/VMEStream_tests
otherwise the compiler doesn't know where to find the VMEStream and circular buffer symbols.
The symbols in question should be available in lib/libvmestream.a
. Do I need to build the library differently?
Ah, you are right, I missed that. It looks okay to me. OK, I would see if any of the following gives you clues, from looking at [1]
nm lib/libvmestream.a
and see if the symbols you expect are there.lib/libvmestream.a
after tests/VMEStream_tests.c
in the command.a
, just all the .o
s, as a sanity check.nm lib/libvmestream.a
does show the symbols to be there. It looks like placing lib/libvmestream.a
after tests/VMEStream_tests.c
did the trick! I'll need to fiddle with the Makefile to use the right ordering.
The only problem I seem to be having now is creating named pipes:
[dbelknap@rctslc6 VMEStream]$ mkfifo test
mkfifo: cannot create fifo `test': Operation not permitted
Great. That's strange about the permissions, test
does not already
exist, does it?
On Wed, Aug 28, 2013 at 7:00 AM, Austin Belknap notifications@github.comwrote:
nm lib/libvmestream.a does show the symbols to be there. It looks like placing lib/libvmestream.a after tests/VMEStream_tests.c did the trick! I'll need to fiddle with the Makefile to use the right ordering.
The only problem I seem to be having now is creating named pipes:
[dbelknap@rctslc6 VMEStream]$ mkfifo test mkfifo: cannot create fifo `test': Operation not permitted
— Reply to this email directly or view it on GitHubhttps://github.com/dabelknap/VMEStream/issues/4#issuecomment-23415975 .
No, test
doesn't already exist.
Ah! Are you on AFS? I don't think you can make a fifo in an AFS directory.
On Wed, Aug 28, 2013 at 7:14 AM, Austin Belknap notifications@github.comwrote:
No, test doesn't already exist.
— Reply to this email directly or view it on GitHubhttps://github.com/dabelknap/VMEStream/issues/4#issuecomment-23417267 .
It is in an AFS directory, but I am not executing the command through AFS: I ssh'd into the virtual machine.
The general problem is you can't put a FIFO in an AFS directory, since it
is a special file. For this same reason, you can only make symlinks, but
not hardlinks, on AFS. I think your solution is to mkfifo /tmp/myfifo
,
and point the test to that.
On Wed, Aug 28, 2013 at 7:40 AM, Austin Belknap notifications@github.comwrote:
It is in an AFS directory, but I am not executing the command through AFS: I ssh'd into the virtual machine.
— Reply to this email directly or view it on GitHubhttps://github.com/dabelknap/VMEStream/issues/4#issuecomment-23419794 .
Yep, I can create fifos in tmp just fine. Thanks!
@ekfriis - I am trying to get VMEStream running on the virtual machine, but I don't understand why I am getting this compiler error.
I set the terminal to
bash
before building. I double-checked my local copy and it works, and the commit hashes of the virtual machine and my local copy are identical.