![]() |
![]() |
Articles / TULARC / Macintosh Operating Systems / MachTen & CodeBuilder / | ![]() |
|
![]() |
||||
![]() |
![]() |
|||
![]() |
![]() |
|||
![]() |
||||
|
|
||||
![]() |
![]() |
|||
![]() |
58 h. Why do I get a message like "can't run ld on NFS filesystem" when Itry to run executables on NFS disks? How can I fix this? |
![]() |
||
![]() |
||||
![]() |
![]() |
![]() |
||
![]() |
||||
![]() |
![]() |
![]() |
![]() |
||
![]() |
||
![]() |
![]() |
![]() |
![]() |
||
|
|
||
![]() |
||
![]() |
![]() |
![]() |
![]() |
||
![]() |
||
This article is from the MachTen & CodeBuilder FAQ, by Jaime Julca jjulca@tenon.com with numerous contributions by others.
Because of the way MachTen runs them, you can't execute or link binaries
over NFS or any other file-sharing system that isn't AppleShare. This is
because we take advantage of the Code Fragment Manager in System 7. The
upside is that our executables occupy less RAM when running and can
dynamically allocate the RAM that they use. The downside is that you can't
link or execute binaries over non-AppleTalk networks. As a workaround, the
following script should help you.
#!/bin/sh # # Currently, MachTen running on PowerMacs can only execute programs # located on Mac volumes (type ufs). If this is the case, just go do # it. Otherwise, make a temporary copy of the program (presumably # from NFS) in /tmp, run it from there, and clean up afterwards. statfs $1 | grep -q ' ufs ' if [ $? -eq 0 ]; then exec "$@" fi FN=$1 ; shift TN=/tmp/$$-`basename $FN` cp -p $FN $TN && $TN "$@" val=$? rm -f $TN exit $val
 
Continue to:
os, MachTen, hardware, software, CodeBuilder, Tenon Intersystems, Macintosh
![]() |
|
|