[Vm-dev] Accessing ux2sqPath and sq2uxPath

Alistair Grant akgrant0710 at gmail.com
Wed Aug 15 19:46:46 UTC 2018


Hi Tobias,

On Wed, 15 Aug 2018 at 21:34, Tobias Pape <Das.Linux at gmx.de> wrote:
>
>
> Hi  Alistair
> >
> > On 15.08.2018, at 21:30, Alistair Grant <akgrant0710 at gmail.com> wrote:
> >
> >
> > Hi Everyone,
> >
> > So that path names are encoded correctly on MacOS, the
> > FileAttributesPlugin needs to use ux2sqPath() and sq2uxPath().
> >
> > On linux this "just works".  If I've read the build log correctly the
> > functions are included in vm.a, which is included when linking external
> > plugins.
> >
> > However I'm not able to get the symbols resolved on MacOS.
>
> You're sure you want the Mac OS folder (ie, legacy Carbon MacOS) and not
> the iOS folder (ie, Cocoa OSX/macOS/iOS)?
>
> Best regards
>         -Tobias

I think you're right, I should put it in the iOS folder.

However it doesn't change the result, the symbol is still unresolved
with the same error messages as below.

Thanks,
Alistair



> > The routines are defined in:
> >
> > platforms/Mac OS/plugins/FilePlugin/sqMacUnixFileInterface.c
> >
> >
> > declared in:
> >
> > platforms/Mac OS/plugins/FilePlugin/sqMacUnixFileInterface.h
> >
> >
> > and are accessed in:
> >
> > platforms/Mac OS/vm/sqMacNSPluginUILogic2.c
> > platforms/Mac OS/vm/sqMacImageIO.c
> > platforms/Mac OS/vm/sqMacMain.c
> >
> >
> > The following lines in build.macos64x64/common/Makefile.vm
> > look like they provide the required magic:
> >
> > PluginIncludes := FilePlugin HostWindowPlugin SoundPlugin
> > OSPluginIncludes := FilePlugin HostWindowPlugin SoundPlugin
> >
> >
> > I attempted to create a plugin makefile:
> >
> > platforms/Mac OS/plugins/FileAttributesPlugin/Makefile.plugin:
> > #
> > # FileAttributesPlugin uses sq2uxPath() and ux2sqPath(), provided by FilePlugin
> > #
> > #
> > include ../common/Makefile.plugin
> > PluginIncludes += FilePlugin
> >
> > however this still results in:
> >
> > Undefined symbols for architecture x86_64:
> >
> >  "_sq2uxPath", referenced from:
> >
> >      _squeakPathtoUnixmaxLen in FileAttributesPlugin.lib(FileAttributesPlugin.o)
> >
> >  "_ux2sqPath", referenced from:
> >
> >      _primitiveReaddir in FileAttributesPlugin.lib(FileAttributesPlugin.o)
> >
> > ld: symbol(s) not found for architecture x86_64
> >
> > clang: error: linker command failed with exit code 1 (use -v to see invocation)
> >
> > make: *** [build/vm/Squeak] Error 1
> >
> >
> > The full source is available at:
> > https://github.com/akgrant43/opensmalltalk-vm/tree/FileAttributes133
> >
> >
> > Any suggestions?
> >
> >
> > Thanks very much,
> > Alistair
>


More information about the Vm-dev mailing list