building a unix vm with src32

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

building a unix vm with src32

Martin Kuball
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


Reply | Threaded
Open this post in threaded view
|

Re: building a unix vm with src32

Joshua Gargus-2
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
>
>

Reply | Threaded
Open this post in threaded view
|

Re: building a unix vm with src32

David T. Lewis
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
>
Reply | Threaded
Open this post in threaded view
|

Re: building a unix vm with src32

Martin Kuball
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
Reply | Threaded
Open this post in threaded view
|

Re: building a unix vm with src32

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

Reply | Threaded
Open this post in threaded view
|

Re: building a unix vm with src32

Martin Kuball
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
Reply | Threaded
Open this post in threaded view
|

Re: building a unix vm with src32

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

Reply | Threaded
Open this post in threaded view
|

Re: building a unix vm with src32

Bert Freudenberg-3

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 -

Reply | Threaded
Open this post in threaded view
|

Re: building a unix vm with src32

Martin Kuball
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