building a unix vm with src32

View: New views
9 Messages — Rating Filter:   Alert me  

Parent Message unknown building a unix vm with src32

by Martin Kuball :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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



Re: building a unix vm with src32

by Joshua Gargus-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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


Re: building a unix vm with src32

by David T. Lewis :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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
>

Re: building a unix vm with src32

by Martin Kuball :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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

Re: building a unix vm with src32

by piumarta@speakeasy.net :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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


Re: building a unix vm with src32

by Martin Kuball :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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

Re: building a unix vm with src32

by piumarta@speakeasy.net :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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


Re: building a unix vm with src32

by Bert Freudenberg-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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 -


Re: building a unix vm with src32

by Martin Kuball :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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