Hi!
I'm trying to build a unix vm on 64 bit AMD (system is debian sid) for use with 32 bit images. I'm using the current svn trunk and build with the src32 directory. Things go well until the link step: gcc -g -O2 -DLSB_FIRST=1 -o squeak disabledPlugins.o version.o -Wl,--export-dynamic vm/vm.a B2DPlugin/B2DPlugin.a BitBltPlugin/BitBltPlugin.a FilePlugin/FilePlugin.a SocketPlugin/SocketPlugin.a -lutil -ldl -lm -lnsl vm/vm.a -Wl,--rpath -Wl,/usr/lib vm/vm.a(sqVirtualMachine.o): In function `sqGetInterpreterProxy':/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:202: undefined reference to `obsoleteDontUseThisFetchWordofObject' :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:333: undefined reference to `fetchLong32ofObject' :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:334: undefined reference to `getThisSessionID' :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:335: undefined reference to `ioFilenamefromStringofLengthresolveAliases' :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:336: undefined reference to `vmEndianness' As you can see some methods are missing from interp.c. Can anybody help me fixing this problem? Martin |
Did you generate the VM sources yourself using VMMaker?
Josh On May 2, 2006, at 3:43 PM, Martin Kuball wrote: > Hi! > > I'm trying to build a unix vm on 64 bit AMD (system is debian sid) for > use with 32 bit images. I'm using the current svn trunk and build > with the src32 directory. Things go well until the link step: > > gcc -g -O2 -DLSB_FIRST=1 -o squeak disabledPlugins.o > version.o -Wl,--export-dynamic vm/vm.a B2DPlugin/B2DPlugin.a > BitBltPlugin/BitBltPlugin.a FilePlugin/FilePlugin.a > SocketPlugin/SocketPlugin.a -lutil -ldl -lm -lnsl > vm/vm.a -Wl,--rpath -Wl,/usr/lib > vm/vm.a(sqVirtualMachine.o): In function > `sqGetInterpreterProxy':/home/kuball/SMT/vm-svn/trunk/platforms/ > Cross/vm/sqVirtualMachine.c:202: > undefined reference to `obsoleteDontUseThisFetchWordofObject' > :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/ > sqVirtualMachine.c:333: > undefined reference to `fetchLong32ofObject' > :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/ > sqVirtualMachine.c:334: > undefined reference to `getThisSessionID' > :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/ > sqVirtualMachine.c:335: > undefined reference to `ioFilenamefromStringofLengthresolveAliases' > :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/ > sqVirtualMachine.c:336: > undefined reference to `vmEndianness' > > As you can see some methods are missing from interp.c. Can anybody > help me fixing this problem? > > Martin > > |
In reply to this post by Martin Kuball
Martin,
I think I've seen these symptoms in the past. Try symlinking your ./src32 to ./src, then re-run platforms/unix/config/configure and make. Perhaps there is some difference of opinion between VMMaker conventions and something in the unix configuration scripts. Sorry, I never took the time to find the root cause, but linking the "src32" name that VMM expects to the "src" name that configure expects seems to make it go away. Dave p.s. Ian recently mentioned the possibility of enhancing the support code such that only one ./src would be required for building 32 bit and 64 bit VMs, at which point this sort of problem should disappear for good. On Tue, May 02, 2006 at 10:43:05PM +0200, Martin Kuball wrote: > Hi! > > I'm trying to build a unix vm on 64 bit AMD (system is debian sid) for > use with 32 bit images. I'm using the current svn trunk and build > with the src32 directory. Things go well until the link step: > > gcc -g -O2 -DLSB_FIRST=1 -o squeak disabledPlugins.o > version.o -Wl,--export-dynamic vm/vm.a B2DPlugin/B2DPlugin.a > BitBltPlugin/BitBltPlugin.a FilePlugin/FilePlugin.a > SocketPlugin/SocketPlugin.a -lutil -ldl -lm -lnsl > vm/vm.a -Wl,--rpath -Wl,/usr/lib > vm/vm.a(sqVirtualMachine.o): In function > `sqGetInterpreterProxy':/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:202: > undefined reference to `obsoleteDontUseThisFetchWordofObject' > :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:333: > undefined reference to `fetchLong32ofObject' > :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:334: > undefined reference to `getThisSessionID' > :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:335: > undefined reference to `ioFilenamefromStringofLengthresolveAliases' > :/home/kuball/SMT/vm-svn/trunk/platforms/Cross/vm/sqVirtualMachine.c:336: > undefined reference to `vmEndianness' > > As you can see some methods are missing from interp.c. Can anybody > help me fixing this problem? > > Martin > |
In reply to this post by Joshua Gargus-2
Am Tuesday, 2. May 2006 23:26 schrieb Josh Gargus:
> Did you generate the VM sources yourself using VMMaker? > > Josh No, I just issued a "svn update" and started the build. But I will try the steps David outlined in his answer. Martin |
On May 3, 2006, at 11:59 AM, Martin Kuball wrote:
> Am Tuesday, 2. May 2006 23:26 schrieb Josh Gargus: >> Did you generate the VM sources yourself using VMMaker? >> >> Josh > > No, I just issued a "svn update" and started the build. But I will try > the steps David outlined in his answer. platforms/unix/src{32,64} were deleted a while ago, replaced with a single platforms/unix/src directory. Your update should have deleted the former and added the latter. If not you might want to remove everything and checkout a fresh copy. Cheers, Ian |
Am Wednesday, 3. May 2006 22:46 schrieb Ian Piumarta:
> On May 3, 2006, at 11:59 AM, Martin Kuball wrote: > > Am Tuesday, 2. May 2006 23:26 schrieb Josh Gargus: > >> Did you generate the VM sources yourself using VMMaker? > >> > >> Josh > > > > No, I just issued a "svn update" and started the build. But I > > will try the steps David outlined in his answer. > > platforms/unix/src{32,64} were deleted a while ago, replaced with a > single platforms/unix/src directory. Your update should have > deleted the former and added the latter. If not you might want to > remove everything and checkout a fresh copy. > > Cheers, > Ian I made a fresh checkout using svn co http://squeakvm.org/svn/squeak/trunk squeak Svn tells me I'm on revision 1508. But I still have the src32 and src64 directorys. Maybe they were not really deleted? Anyway, if you say I should not care about them I will do so. But how do I tell the configure what type of vm I want to build? Martin |
On May 4, 2006, at 12:48 PM, Martin Kuball wrote:
> I made a fresh checkout using > svn co http://squeakvm.org/svn/squeak/trunk squeak > Svn tells me I'm on revision 1508. But I still have the src32 and > src64 directorys. Maybe they were not really deleted? I guess subversion implements some strange definition of 'delete' with which I was not previously familiar. > But how > do I tell the configure what type of vm I want to build? Short answer: run 'configure --help'. Long answer: configure will look fir a directory called 'src' by default (relative to platforms/unix/), ignoring src32/64. If you want it to look for generated sources in some other place then use the '--with-src' option. E.g: ../platforms/unix/config/configure --with-src=src64 will use platforms/unix/src64; or even ../platforms/unix/config/configure --with-src=../../src32 if you ran VMMaker in the dir containing 'platforms' and didn't manually change the location of the generated sources before generating a 32-bit VM. Cheers, Ian |
Am 04.05.2006 um 23:35 schrieb Ian Piumarta: > On May 4, 2006, at 12:48 PM, Martin Kuball wrote: > >> I made a fresh checkout using >> svn co http://squeakvm.org/svn/squeak/trunk squeak >> Svn tells me I'm on revision 1508. But I still have the src32 and >> src64 directorys. Maybe they were not really deleted? > > I guess subversion implements some strange definition of 'delete' > with which I was not previously familiar. After you did a "svn rm" you still need to "svn commit". The last log entry is a year old from where you added the tree: bert.vektor ~ % svn log http://squeakvm.org/svn/squeak/trunk/ platforms/unix/src32 ------------------------------------------------------------------------ r1155 | piumarta | 2005-04-01 02:44:01 +0200 (Fri, 01 Apr 2005) | 1 line new 32- and 64-bit src ------------------------------------------------------------------------ - Bert - |
In reply to this post by Ian Piumarta
Am Thursday, 4. May 2006 23:35 schrieb Ian Piumarta:
> On May 4, 2006, at 12:48 PM, Martin Kuball wrote: > > I made a fresh checkout using > > svn co http://squeakvm.org/svn/squeak/trunk squeak > > Svn tells me I'm on revision 1508. But I still have the src32 and > > src64 directorys. Maybe they were not really deleted? > > I guess subversion implements some strange definition of 'delete' > with which I was not previously familiar. > > > But how > > do I tell the configure what type of vm I want to build? > > Short answer: run 'configure --help'. > > Long answer: configure will look fir a directory called 'src' by > default (relative to platforms/unix/), ignoring src32/64. If you > want it to look for generated sources in some other place then use > the '--with-src' option. E.g: > > ../platforms/unix/config/configure --with-src=src64 > > will use platforms/unix/src64; or even > > ../platforms/unix/config/configure --with-src=../../src32 > > if you ran VMMaker in the dir containing 'platforms' and didn't > manually change the location of the generated sources before > generating a 32-bit VM. > > Cheers, > Ian So you still need the src32 or src64 directories? Why than delete them? Anyway, I installed VMMaker and generated the source I need. But doing that I noticed that I'm still missing something. I see that I can switch between 64 bit and 32 bit in VMMaker. But where does the information about the pointer size of the target cpu come from? Is it done via the configure script? Martin |
Free forum by Nabble | Edit this page |