Trouble building Mac VM under MPW 3.5

Martin McClure martin at hand2mouse.com
Tue Oct 9 21:58:25 UTC 2001


This is probably more of a MacOS development question than it is a 
Squeak question. I'd be grateful for any help from the few of you 
that know this area.

Below I list the gist of my problem, then more detail for those who 
are interested.

Thanks,

-Martin

Summary and specific questions:
I'm building a Mac VM under MacOS 9 using MPW 3.5. I've built VMs on 
Windows before, but not on Mac, and am an expert in neither Mac 
development nor C development in general. I've worked through many of 
the issues, but seem to be having more trouble with this one.

At link time I'm getting these unresolved external references:

#  Unresolved external references:
#    .ftruncate
#    .InitOpenTransport
#    .OTAllocMem
#    .OTInetGetInterfaceInfo
#    .OTInitInetAddress
#    .NADisposeNoteChannel
#    .NAStuffToneDescription
#    .NANewNoteChannel
#    .NAResetNoteChannel
#    .NASetInstrumentNumber
#    .OTOpenInternetServices
#    .OTInetStringToAddress
#    .OTInetAddressToName
#    .NAPlayNote
#    .NASetController
#    .OTAsyncOpenEndpoint
#    .OTCloseProvider
#    .CloseOpenTransport

First, what is the significance (if any) of the fact that all of 
these references have a leading period?

Most of these are MacOS functions that are obsolete and therefore 
don't appear in the stub libraries I have, which seem to be based on 
something called "Universal Interfaces 3.4." What are these supposed 
to link to?

And then there's that first entry, .ftruncate. ftruncate is a 
function referenced in sqFilePluginBasicPrims.c. There's a definition 
defined in sqMacDirectory.c, but that definition is omitted by the 
preprocessor because of the line:
#if !defined ( __MPW__ ) &&  !defined( __APPLE__ ) && !defined( __MACH__)
What Mac development environment is supposed to define none of these symbols?
The definition of ftruncate in sqMacDirectory.c doesn't seem to be 
compatible with my environment.


Additional details:

Why am I building a VM?
Because I want a VM with debugging symbols, and because it seems like 
a good idea to know how to.

Why do I need debugging symbols?
Because I've written a plugin that runs OK for about a second, then 
crashes Squeak, and I want to debug it. I might not actually need an 
entire VM with debugging symbols, but it seemed like a good idea at 
the time.

What VM configuration am I building?
Image: 3.1b4411
VMMaker-3-1-version2.rel1.cs
platforms20010922.zip

Expression used to generate source:
(VMMaker default initializeAllInternalBut:
	#(IntegerPokerPlugin Mpeg3Plugin FFIPlugin TestOSAPlugin 
FileCopyPlugin B3DAcceleratorPlugin ))
	generateMainVM.
This is a normal Mac VM build except it does not make 
B3DAcceleratorPlugin internal. I left that one out because MPW 3.5 
didn't come with the necessary OpenGL headers and stub libraries, and 
because I'm not currently needing to use 3D.




More information about the Squeak-dev mailing list