Uh duh,
start_exec.c includes jit_emit.h
0015a810 t Parrot_store_arg
little t means its not exported.
set_nci_* functions should probably be moved elsewhere.
as well as the Parrot_jit_build_call_func
I found Parrot_jit_build_call_func in src/jit/i386/jit_emit.h, so I
made my changes in place.
Suggestions about where these functions should go and how?
Kevin
Kevin Tew wrote:
Looks like a weird linking error,
I can reproduce it.
cc -o examples/pasm/hello examples/pasm/hello.o src/exec_start.o
src/parrot_config.o -Wl,-rpath=/home/tewk/srcs/nci/blib/lib
-L/home/tewk/srcs/nci/blib/lib -lparrot -lm -L/usr/lib -licuuc
-licudata -lm -ldl -lm -lpthread -lcrypt -lrt -lgmp -lreadline -lpcre
-lglut -lGLU -lGL -lcrypto -L/usr/local/lib -Wl,-E
src/exec_start.o: In function `set_nci_I':
/home/tewk/srcs/nci/src/jit_emit.h:96: undefined reference to
`Parrot_store_arg'
src/exec_start.o: In function `set_nci_N':
/home/tewk/srcs/nci/src/jit_emit.h:107: undefined reference to
`Parrot_store_arg'
src/exec_start.o: In function `set_nci_S':
/home/tewk/srcs/nci/src/jit_emit.h:118: undefined reference to
`Parrot_store_arg'
src/exec_start.o: In function `set_nci_P':
/home/tewk/srcs/nci/src/jit_emit.h:129: undefined reference to
`Parrot_store_arg'
collect2: ld returned 1 exit status
make[1]: *** [exec] Error 1
What puzzles me is that Parrot_store_arg is in libparrot
13:38:58 [EMAIL PROTECTED]: ~/srcs/nci(nci)$ nm blib/lib/libparrot.so.0.7.0
|grep store_arg
0015a810 t Parrot_store_arg
0015a760 t store_arg
13:39:20 [EMAIL PROTECTED]: ~/srcs/nci(nci)$ nm blib/lib/libparrot.a |grep
store_arg
00001840 T Parrot_store_arg
00001790 t store_arg
U Parrot_store_arg
U Parrot_store_arg
U Parrot_store_arg
U Parrot_store_arg
U Parrot_store_arg
U Parrot_store_arg
Ideas, Kevin
François Perrad wrote:
2008/8/22 Kevin Tew <[EMAIL PROTECTED]>:
The merge has happened.
The target 'hello' seems broken :
src/exec_start.o: In function `set_nci_I':
/home/fperrad/checkout/parrot/src/jit_emit.h:96: undefined reference
to `Parrot_store_arg'
src/exec_start.o: In function `set_nci_N':
/home/fperrad/checkout/parrot/src/jit_emit.h:107: undefined reference
to `Parrot_store_arg'
src/exec_start.o: In function `set_nci_S':
/home/fperrad/checkout/parrot/src/jit_emit.h:118: undefined reference
to `Parrot_store_arg'
src/exec_start.o: In function `set_nci_P':
/home/fperrad/checkout/parrot/src/jit_emit.h:129: undefined reference
to `Parrot_store_arg'
collect2: ld returned 1 exit status
Francois.
Developers/Users should see no visible changes.
Please build and test, should you have any problems, just yell at me
on #irc
or parrot-porters.
Regression test cases will be appreciated. :)
I'll try to be available until 3:00pm MDT and later this evening
9:00pmMDT
-> until my eyelids close.
NOTE:
Jitted nci stubs are supported now on i386 linux and win32.
However jitted nci stubs are DISABLED by default.
Once we have this initial merge completed and everyone happy, I will
enable
jitted nci stubs as the default, accompanied by another message to
parrot-porters
If you want to test jitted nci stubs uncomment tools/build
cs/nativecall.pl:308, make realclean, rinse, etc
Jitted nci stubs for x86_64 and i386 OSX are in the works but not
present in
this current merge.
i386 OSX doesn't work with the current patch because it requires a
16 byte
aligned stack.
Don't worry, by default configure disables jit on OSX.
Things that have changed under the covers:
1) a new makefile is being generated
+++ config/gen/makefiles.pm (working copy)
@@ -41,6 +41,8 @@
conditioned_lines => 1,
},
+ 'compilers/ncigen/Makefile' =>
+ { SOURCE =>
'compilers/ncigen/config/makefiles/ncigen.in' },
2) nci c function stub generation has changed slightly
Kevin