On Wed, 2010-01-06 at 12:42 -0800, Peter Naulls wrote:
> John-Mark Bell wrote:
> >
> > 
> >    When arm-unknown-riscos-ln is used in a native RISC OS environment,
> >    it should do whatever the rest of the toolchain does wrt paths and
> >    appropriately type the link file. Off-hand, I cannot recall what the
> >    toolchain's path behaviour is.
> 
> I think this is the main problem.  The rest of the toolchain is UnixLib,
> and makes use of riscosify around all file operations.  

Right, so that implies Unix paths everywhere, no?

In which case, item 1 in my suggested solution certainly needs to
happen.

> Because SOManager is a module, it has a special version of this code based 
> upon the special version also used for our SCL, and handling of symlinks
> is therefore not part of this.

Sure. However, as my previous email implied (though I didn't explicitly
point out), if the soname is in RISC OS format, nothing works at all
right now, regardless of symlink contents. 

So, if SOManager is performing its own riscosify-like processing on
library soname->filename lookup, then it's broken for the case where the
soname is already in RO format. The soname->filename mapping works
correctly when there's a Unix format soname.

Which brings us on to symlinks:

> As in all these cases, there's a degree of ambiguity, but do you think
> it would be reasonable for SOManager to just "try harder" with more
> combinations when looking for shared libraries?

I think that's part of a solution, yes (although, personally, I've
absolutely no objection to mandating Unix format sonames -- in fact, I
suspect it makes sense from an ease of porting perspective).

I think SOManager probably could try a little harder when dereferencing
symlinks, in that if it's already got riscosify-like behaviour, then
there's no harm in applying that to symlink targets. 

However, fundamentally, if symlinks are ever going to be used by things
other than SOManager, then any solution has to be completely consistent
in its behaviour, particularly in the case where symlinks generated in a
cross-compilation environment (with all the Unix-like path foo that that
implies) are then copied unmodified to a RISC OS machine. Certainly, my
expectation is that this should work. Which is where we came in :)


J.


_______________________________________________
GCCSDK mailing list [email protected]
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

Reply via email to