2001/02/06    ROOT on MacOSX

�褦�䤯  ROOT ���ޤȤ��ư������Ĺ���ȥ�ͥ�Ǥ��ä���Dynamic Loader �� Custom New/Delete �����ꡢsemaphore �����ꡢ����ȡ�Xtools ���Զ��ȡ����������꤬�ޤ�ŤʤäƤ��δ֤��ڤ�ʬ�����񤷤�������˥����ͥ�κƹ��ۤ� MacOS X ����ư���ʤ��ʤä����Ƨ����꽳�ä��ꡣ���ä������ٺƥ��󥹥ȡ��뤷�����Ȥ����������Ǥ��äȤ⥹�����˹Ԥ��Ƥ��ʤ���

����ſ��
 �ե��������꡼������������¾����Τ��ᡢsemaphore ��ɬ�פǤ��뤬��MacOS X �� posix semaphore �����󶡤��ʤ�������ϡ�SysV semaphore ����٤ƻȤ��ˤ����Τǡ�http://www.darwinfo.org/�ǻ����줿����ˤ�� John Bellardo ����� sysv_sem patches ��Ȥ����ˤ�����
����򤢤Ƥơ�Darwin 1.2 �Υ����ͥ��ƹ��ۤ���MacOS X PB �Τ�Τ��֤��������Ȥ�����ư�������������ʤ���Ȥ��ᤷ��������Ǥⵯư���ʤ��ʤäƤ��ޤä������ͤƤ�� UFS ���Ƥߤ����Ȥ����ߵ᤬���ä��Τǡ������ɵ᤹����ʤ���UFS �Ǻƥ��󥹥ȡ��롣
�Ȥ�������UFS �ǤϺ��ޤǥѥ����Ƥ��� CERNLIB �� Paw Test �˼��Ԥ���褦�ˤʤäƤ��ޤä�������Ϻƥ���ѥ����ľ��褦�ʤ�Τ����Τ�ʤ�����  MacOS X ��ͭ�Υ��եȡ��㤨��  IE  ������������ե�����򳫤��ʤ��ʤäƤ��ޤä��Ȥ����Զ�礬³�С���ʸ������ʸ���ζ��̤��Ǥ��ʤ��ʾ�����꤬�ǤƤ��ơ����ʤ���HFS+ �˵����Ǻƥ��󥹥ȡ��롣
SysV Semaphore �Υ��ݡ��Ȥϸ�󤷤ˤ��ơ���괺������ROOT �Υ���ѥ����ʤ����ˤ����������Ǥޤ�����ˤʤä��Τϡ���ͭ�饤�֥�꡼�κ������MacOS X  �Ǥϡ��Х��ʥ꡼�� Linux �Ǥ��ʤ��ߤ� ELF �ǤϤʤ���Mach-** �ʤ���ͭ�Υե����ޥåȤǡ������붦ͭ�饤�֥�꡼��lib**.dylib�ˤ�ưŪ�˥����ɤ���⥸�塼�� ��**.bundle�� �Ȥ��̤κ�����򤷤ʤ��Ȥ����ʤ���
�㤨�ж�ͭ�饤�֥�꡼�ʤ�

c++ -O -dylib -r -nostartfiles -install_name  <SONAME ���б�����̾��>    hoge1.o hoge2.o ......    -o libhoge.dylib
�ޤ���dynamically loadable module �ʤ�
c++ -O -bundle -undefined suppress hoge1.o hoge2.o .....  -o hoge.bundle
�Τ褦�ʴ��������Υ��ץ�����Ŭ�ڤ����Фʤ��� duplicate symbols ��� �����ǤޤȤ�˴�˾�Τ�Τ��äƤ���ʤ���
������Τä��Τǡ�Tcl/Tk ��ͭ�饤�֥�꡼�ˤ�����

��ǽ񤯤褦�ˤ����Ĥ��ѥå��򤢤Ƥ���ˤ�ꡢ��괺������ROOT �Υ���ѥ�����������뤬����ư�Կ�������ϡ�___builtin_new �� ___builtin_delete �ʤɤξ��ͤǤ������Ƚ����ROOT �ϥ��֥������Ȥΰ층�����Τ���� new/delete ���񤭤��ƻȤäƤ��뤬�������ǡ����Ȥ� libcc_dynamic.a �ˤ����Τ��Ȥ��Ƥ��ޤäƤ���������ϡ���κ�ä� /usr/local/lib/libcc_dynamic.a ���㤨�� ___builtin_new �� private extern ����򤻤���������Ƥ��ޤäƤ��뤻�����ä�������Ϥ�Ȥ� darwin source �򤤤��äƤ��ʤ���ʬ�ʤΤ��Ի׵ĤǤ��뤬���Ȥˤ��������Τ����ǡ�ld  �� ___builtin_new �� "text" section �Ǥʤ� "Text" section  �˥Х���ɤ��Ƥ��ޤ���custom new �Ⱦ��ͤ�����������Ƥ�����
gcc ����ľ���Τ��ڤ�����ɸ��Τ�Τ�Ȥ��褦�ˡ����޽��֤Ȥ��ơ������ libcc_dynamic.a ��饤�֥�꡼�Υ������ѥ��γ��˱����Ƥ��ޤ����������뤳�Ȥǡ�lib**.dylib �� ���Ȥ� ___builtin_new ���Х���ɤ����������򤱤��롣

������������Ǥ⡢Tenon �� Xtools �� rootless �ǻȤäƤ���ȡ��ɤ����Τ�ʤ���ʬ�� ���Ȥ� ___builtin_new ���ƤФ�Ƥ��ޤ��������⡢���줬�����ä��굯����ʤ��ä�������Τ狼��ʤ����֤˴٤롣�ޤ���GUI ���ޥ����Υ��٥�Ȥ������ä�����ʤ��ä���⤹�롣 Full screen mode �ǤϤ�������ϵ�����ʤ����¤ϡ�TkDesk �Υ��ǥ���������Υꥵ������ rootless �Ǹ����ʤ��ä��ꤹ������Ⱥ���Ʊ�������Τ�ʤ���

����� ROOT Ʊ���Υƥ��Ȥ����餻��ȡ������Ĥ����ꤢ���tests/vvector, vmatrix �ˡ�

Write vector v to database
Warning in <TClass::TClass>: no dictionary for class TFile is available
Warning in <TClass::TClass>: no dictionary for class TVector is available
Warning in <TClass::TClass>: no dictionary for class TKey is available
Warning in <TClass::TClass>: no dictionary for class TStreamerElement is available

Close database
Warning in <TClass::TClass>: no dictionary for class TList is available
Warning in <TClass::TClass>: no dictionary for class TObject is available
Warning in <TClass::TClass>: no dictionary for class TStreamerInfo is available
Warning in <TClass::TClass>: no dictionary for class TNamed is available
Warning in <TClass::TClass>: no dictionary for class TObjArray is available

Open database in read-only mode and read vector
Error in <TKey::ReadObj>: Cannot create new object of class TList
Error in <TKey::ReadObj>: Cannot create new object of class TVector

Read vector should be same as original still in memory

 *** Break *** bus error

�Ƥʴ����Υ��顼������ϡ�Linux �Ǥ����Ȥ����� -WL,-E  �ޤ���  -rdynamic ���б�����ե�å���Ω�äƤ��ʤ��ɾ��ʶ�ͭ�饤�֥�꡼�ǥ���ݡ��Ȥ�������ܥ뤬 main ���鸫���ʤ��ˤǤ��롣����ä�Ĵ�����������Ǥ��б�����ե�å������Ĥ���ʤ��ä��Τǡ�main �� ��Ƭ��Application Object ������Dz��򤹤롣

�����������ʤ�������ϻĤ롣stress test �ν�λ�����ޤ���TBrowser �� root file �򸫤褦�Ȥ���� seg-fault ���롣Xtools ���Ф��Ƥ��ä��꿮�Ѥ�ʤ������Τ� XFree86 �����ˤ��롣���֤��ʤ��ΤǥХ��ʥ꡼�򥤥󥹥ȡ��롣�¤ϡ��Х��ʥ꡼�϶�ͭ�饤�֥�꡼���󶡤��ʤ��Τǡ�X ��Ϣ�Υ��ץꥱ��������ƥ���ѥ��뤹��ɬ�פ����ä��ʤɤ��餬��֤��¤ä����������˽�ʬ�Ǥ��Τᤵ��Ƥ����Τǡ�������ƻ������Ǥ��ޤä��ˡ������������ޤ���Ԥ��Ƥ��ʤ��ä��ȤϤ�������äѤ����ܤǤ��ä���

�����ǡ����褤�衢��󤷤ˤ��Ƥ��� semaphore �����Ω���֤롣���������������ܤ��ä���ΤϤ�Ϥ����ܡ��Ỵ�ʻ��ˡ��ޤ������ƥब��ư���ʤ��ʤäƤ��ޤä������٤ϡ���ñ�ˤϤ�������줺�ͥåȾ�Ǿ������ä���̡�FAQ �Ǥ��ä����ĤޤꡢWallStreet �Ǥϡ�MacOS X partition �� volume ����Ƭ���� 8GB ����ˤʤ��ƤϤʤ�ʤ��ä��������󡢤���ʤ�Ϥᤫ�饤�󥹥ȡ���Ǥ�����ư�����ꤷ�ʤ����ߤ������ҤȤ��� mach_kernel �ΰ��֤�ư���������Ǹ塢 BootX �Ϥ���򸫼��äƤ��ޤ�����ɤ�����ᤶ��򤨤ʤ��ä����ߤ��ϡ�partition �򾮤��������鱳�Τ褦�� SysV Semaphore �ѥå��Τ����ä� custom kernel ����ư�������ȡ�

���������嵭�λĤ��줿 ROOT ������ϲ�褻���������ʤ���ƻ�ʥǥХå���Ϥ�롣�ǥХå������Ⱦ�����褦�䤯������Ĥ��Ȥ᤿��
���� ROOT �ΥХ��Ǥ��ä��������ľ���ȡ�������ROOT ��������ư���Ƥ��줿��
�褦�䤯�����Υ��եȤΰܿ��˰ܹԤǤ��롣�᤯�������ˤ�����������˺��Ƥ��ޤ����ˡ��ƥ��󥹥ȡ�����­�פ��ñ�ˡ�
 
 
 

[1] �ƥ��󥹥ȡ���ȳ�ȯ�Ķ���������Xtools ���Ѥξ���

HFS+ �ˤƺƥ��󥹥ȡ��롣lan��Apple talk��Dock �ʤɤ�����θ塢
# vi /etc/hosts.deny
ALL:    ALL
# vi /etc/hosts.allow
ALL:    LOCAL ***.**.***.
sshd:   ALL
sshdfwd-X11:    ***.**.***.
# vi /System/Library/StartupItems/SSH/SSH
......
if [ "${SSHSERVER:=-NO-}" = "-YES-" ]; then
.....
        sshd -h /etc/ssh_host_key
fi
....
# vi /etc/hostconfig
....
SSHSERVER=-YES-
# vi /etc/sshd_config
....
Protocol 2,1
....
# vi /etc/ssh_config
....
Host *  ....
        ForwardX11 yes
        ....
�����ǡ�Tenon ������������ɤ��� Xtools �򥤥󥹥ȡ��롣����ϥѥå���������֥륯��å����ƥ��󥹥ȡ��롣���θ塢
# patch -p0 < memo/xtools.config.patch
# cd <somewhere>/fonts
# ls
6x12rk.pcf.gz             fonts.alias.75dpi.added   s5x8.pcf.gz
a12.pcf.gz                fonts.alias.misc.added
elisau10.pcf.gz           k12.pcf.gz
# cp *.gz /usr/X11R6/lib/X11/fonts/misc/
# mkfontdir /usr/X11R6/lib/X11/fonts/misc/
# cat fonts.alias.75dpi.added >> /usr/X11R6/lib/X11/fonts/75dpi/fonts.alias
# cat fonts.alias.misc.added >> /usr/X11R6/lib/X11/fonts/misc/fonts.alias
�嵭�Υѥå��϶�ͭ�饤�֥�꡼�����������󥹥ȡ��뤵���뤿���ɬ�ס�canna ������ˤʤä��ˡ�
�ޤ�����ˤ�äơ�Xaw3d ������Ƥ�����
# tar -zxvf Xaw3d-1.5-bin.tar.gz -C /
# pushd /usr/X11R6/lib
# mv libXaw.dylib libXaw.dylib.ORIG
# ln -s libXaw3d.dylib libXaw.dylib
# popd
�ޤ������ܸ�Ķ���Ŭ���ˡ�
# tar -zxvf bash-2.03-bin.tar.gz -C /
# cp /usr/local/bin/bash /bin/bash
# tar -zxvf less-358-bin.tar.gz -C /
# tar -zxvf nkf_1.92_1-bin.tar.gz -C /
# tar -zxvf kterm-6.2.0-bin.tar.gz -C /
# tar -zxvf Canna-3.5b2-bin.tar.gz -C /
# tar -zxvf kinput2-v3-bin.tar.gz -C /

# tar -zxvf tcltk-8.0.5jp-bin.tar.gz -C /
# tar -zxvf tkdesk-1.2jp-bin.tar.gz -C /


���ˡ��ޤ� ADC ������ꤷ�� Apple's developer tools �򥤥󥹥ȡ��롣�����ѥå���������֥륯��å����ƥ��󥹥ȡ��롣

�ޤ����ʲ��Τ�Τ� Apple �� Darwin source repository ������������ɤ�������ѥ��뤹�롣/usr/bin/cc �ޤ���make �� 3.79 ��Ȥ�����
����ѥ���ˤ�

export HOSTTYPE=macintosh
export VENDOR=apple
export OSTYPE=macos
export MACHTYPE=powerpc
export MAKEFILEPATH=/Developer/Makefiles

export RC_ARCHS=ppc
export RC_CFLAGS='-arch ppc'
export RC_OS='macos'
export SRCROOT=`pwd`
export TARGETS=ppc
export HOSTS=ppc

�ʤɤȤ��Ƥ������ɤ���
$ cd bootstrap_cmds-24
$ mkdir tmp
$ su
# make install DSTROOT=`pwd`/tmp
# mkdir /Library/Frameworks
# cp -PR /System/Library/Frameworks/IOKit.framework /Library/Frameworks/IOKit.fr
amework
# mkdir /Local
# ln -s ../Library /Local/Library
# exit
$ ln -s xnu-3-1 xnu
$ cd xnu
$ vi SETUP/setup.sh
....
export SRCROOT=`pwd`
....
$ make exporthdrs
$ make
$ make install
$ ^C # quit when compilation starts

$ IOKitUser-3-1-0-1
$ vi Makefile
....
NEXTSTEP_BUILD_OUTPUT_DIR = /Users/fujiik/sandbox/xnu/BUILD/dst/System/Library/F
rameworks
...
$ make

$ su
# pushd ../xnu/BUILD/dst/System/Library/Frameworks/
# cp -Rp IOKit.framework/Versions/A/Headers/* /Library/Frameworks/IOKit.framewor
k/Versions/A/Headers/

# popd
# pushd ../xnu/BUILD/dst/System/Library/Frameworks/System.framework/
# cp -R libkern /System/Library/Frameworks/System.framework/Headers/libkern
# popd
$ cd ~/sandbox/darwin/build/Libm-18-1
$ su
# make install DSTROOT=`pwd`/tmp
# cd tmp
# tar -zcvf ../../../tgz/Libm-18-1-bin.tar.gz .
# tar -zxvf ../../../tgz/Libm-18-1-bin.tar.gz -C /
# exit

$ cd ../Libcurses-23
$ su
# make install DSTROOT=`pwd`/tmp
# cd tmp
# tar -zcvf ../../../tgz/Libcurses-23-bin.tar.gz .
# tar -zxvf ../../../tgz/Libcurses-23-bin.tar.gz -C /
# exit

$ cd ../Libcompat-14-1
$ su
# make install DSTROOT=`pwd`/tmp
# cd tmp
# tar -zcvf ../../../tgz/Libcompat-14-1-bin.tar.gz .
# tar -zxvf ../../../tgz/Libcompat-14-1-bin.tar.gz -C /
# exit

$ cd ../Libstreams-21-1
$ su
# make install DSTROOT=`pwd`/tmp
# cd tmp
# tar -zcvf ../../../tgz/Libstreams-21-1-bin.tar.gz .
# tar -zxvf ../../../tgz/Libstreams-21-1-bin.tar.gz -C /
# pushd /System/Library/Frameworks/System.framework/
# ln -s Versions/Current/PrivateHeaders .
# popd
# exit

$ cd ../Csu-35
$ su
# make install DSTROOT=`pwd`/tmp
# cd tmp
# tar -zcvf ../../../tgz/Csu-35-bin.tar.gz .
# tar -zxvf ../../../tgz/Csu-35-bin.tar.gz -C /
# exit

$ cd ../libc-149
$ make
$ su
# pushd /Users/Public/SandBox
# ln -s fujiik root
# popd
# make install DSTROOT=`pwd`/tmp
# cd tmp
# tar -zcvf ../../../tgz/Libc-149-bin.tar.gz .
# tar -zxvf ../../../tgz/Libc-149-bin.tar.gz -C /
# exit

$ cd ../cctools-6-1
$ cat ~/memo/setup.sh
export RC_ARCHS=ppc
export RC_CFLAGS='-arch ppc'
export RC_OS='macos'
export TARGETS=ppc
export HOSTS=ppc
export SRCROOT=`pwd`
export OBJROOT=$SRCROOT/BUILD/obj
export SYMROOT=$SRCROOT/BUILD/sym
export DSTROOT=$SRCROOT/BUILD/dst
$ mkdir -p BUILD/{obj,sym,dst}
$ source ~/memo/setup.sh
$ make install >& install.log
$ su
# cd BUILD/dst
# tar -zcvf ../../../../tgz/cctools-6-1-local-bin.tar.gz usr/local
# exit

$ cd gcc-2
$ cp -PR <somewhere>/libf2c .
$ cp -PR <somewhere>/gcc/f gcc/.
$ patch -p1 -s < <somewhere>/gcc-2.95.2-libg2c.patch
$ patch -p1 -s < <somewhere>/gcc-2.95.2-macosx.patch
$ make >& make.log &
$ cd gcc
$ for i in ../obj/cc-ppc-on-ppc/*.h; do ln -s $i .; done
$ cd ..
$ mkdir obj/ppc/libf2c
$ cd obj/ppc/libf2c
$ CFLAGS='-traditional-cpp' $SRCROOT/libf2c/configure --srcdir=/Users/fujiik/sandbox/gcc-2/libf2c --host=ppc --target=ppc
$ make TARGETS='ppc' HOSTS='ppc' >& make.log &

[2] dlcompat

www.darwinfo.org �� libdl �β����Ǥ���������Τ롣����� LD_LIBRARY_PATH �ʤɤ������ΤǤ��꤬������
 
$ cd dlcompat-20010123
$ cat dlcompat-20010123-makefile.patch
--- dlcompat-20010123/Makefile.ORIG     Fri Jan 19 01:30:29 2001
+++ dlcompat-20010123/Makefile  Fri Jan 26 14:44:28 2001
@@ -31,7 +31,7 @@
 CFLAGS=-Wall -O2 -DDEBUG=$(DEBUG)
 AR=ar cru
 RANLIB=ranlib
-INSTALL=install
+INSTALL=install -c

 OBJS = dlopen.o

@@ -39,12 +39,14 @@
 all: libdl.a libdl.dylib

 install: all
-       if test ! -d $(prefix)/lib ; then mkdir $(prefix)/lib ; fi
-       $(INSTALL) -m 644 libdl.a $(prefix)/lib
-       $(RANLIB) $(prefix)/lib/libdl.a
-       chmod 644 $(prefix)/lib/libdl.a
-       $(INSTALL) -m 755 libdl.dylib $(prefix)/lib
-       if test ! -d $(prefix)/include ; then mkdir $(prefix)/include ; fi
+       if test ! -d $(prefix)/lib/system ; then mkdir -p $(prefix)/lib/system ;
 fi
+       $(INSTALL) -m 644 libdl.a $(prefix)/lib/system
+       $(RANLIB) $(prefix)/lib/system/libdl.a
+       chmod 644 $(prefix)/lib/system/libdl.a
+       ln -s system/libdl.a $(prefix)/lib/.
+       $(INSTALL) -m 755 libdl.dylib $(prefix)/lib/system
+       ln -s system/libdl.dylib $(prefix)/lib/.
+       if test ! -d $(prefix)/include ; then mkdir -p $(prefix)/include ; fi
        $(INSTALL) -m 644 dlfcn.h $(prefix)/include
$ patch -p1 -s < dlcompat-20010123-makefile.patch
$ make
$ su
# make install prefix=usr/local
# tar -zcvf dlcompat-2001023-bin.tar.gz usr
# tar -zxvf dlcompat-2001023-bin.tar.gz -C /

[3] ��ͭ�饤�֥�꡼�� Tcl/Tk �� TkDesk

��ͭ�饤�֥�꡼�κ������Ф����ΤǺ��ľ����
$ for i in *.tar.gz; do tar -zxvf $i; done
$ tcl8.0.5/
$ patch -p2 < ../../tcl8.0.3-glibc21.patch
$ patch -p2 < ../../tcl8.0.5-sigpwr.patch
$ patch -p0 < ../../tcl8.0.5jp1.6.patch
$ patch -p1 < ../../tcl8.0.5-macosx-shared.patch
$ cd ../itcl3.0.1/
$ patch -p5 -s < ../../itcl_fix.diff
$ patch -p1 -s < ../../itcl3.0.1jp-tkpath.patch
$ patch -p1 < ../../tk8.0.5-macosx-shared.patch
$ cd ../tk8.0.5/
$ patch -p0 -s < ../../tk8.0.5jp1.6a.patch
$ patch -p1 -s < ../../tk8.0.5jp1.6a-im.patch
$ patch -p2 -s < ../../tcl8.0.5jp-path.patch
$ patch -p1 < ../../itcl3.0.1-macosx-shared.patch

$ cd tcl8.0.5/unix
$ ./configure --enable-shared --enable-gcc --prefix=/usr/local
$ make >& make.log      # with libc and libm, I don't need to set LIBS

$ cd tk8.0.5/unix
$ ./configure --enable-shared --enable-gcc --with-tcl=../../tcl8.0.5/unix --pref
ix=/usr/local
$ make >& make.log      # with libc and libm, I don't need to set LIBS

$ cd itcl3.0.1/
$ ./configure  --enable-shared --prefix=/usr/local -enable-gcc \
        --with-tcl=/Users/fujiik/sandbox/mypkg/src/tcltk/build/tcl8.0.5/unix/ \
        -with-tk=/Users/fujiik/sandbox/mypkg/src/tcltk/build/tk8.0.5/unix/
$ make CC='gcc -DKANJI -DKINPUT2 -DXIM_IMPROVE' >& make.log &

�����ơ�TkDesk��
$ tkdesk-1.2
$ patch -p1 < ../tkdesk-1.2+jp.patch
$ patch -p0 < ../exit-save-dd.diff
$ cd tcldesk/
$ patch -p0 < ../../appbar-dnd.diff
$ patch -p0 < ../../empty-trash.diff
$ patch -p0 < ../../find-dd.diff
$ cd ..
$ ./configure --prefix=/usr/local
$ make CC_OPTS="-O2  -DKANJI -DKINPUT2 -DXIM_IMPROVE"
$ mkdir -p usr/local/{bin,lib,man}
$ make install INSTALL_ROOT=`pwd`

[4] CERNLIB Related

�⥨�ͥ륮���ȳ���ɸ��ġ��롣
# tar -zxvf lesstif-08102000.tar.gz -C /
# pushd /usr/X11R6/include/
# ln -s ../../local/LessTif/Motif1.2/include/Xm .
# ln -s ../../local/LessTif/Motif1.2/include/Mrm .
# cd include
# ln -s ../Xm .
# ln -s ../Mrm .
# cd ../lib
# ln -s ../../local/LessTif/Motif1.2/lib/libXm.a .
# ln -s ../../local/LessTif/Motif1.2/lib/libMrm.a .
# popd
# mkdir /cernlib
# ln -s cernlib /cern
# ln -s 2000 /cern/pro
# for i in cernlib-2000-*; do tar -zxvf $i -C /cernlib/; done
# tar -zxvf patchy-4.15-bin.tar.gz -C /

# tar -zxvf readline-4.1-bin.tar.gz -C /
# tar -zxvf termcap-2.0.8-bin.tar.gz -C /
# tar -zxvf dis45-v1.36-bin.tar.gz -C /

# tar -zxvf freetype-1.3.1-bin.tar.gz -C /

[5] XFree86 ��

XFree86 �� Darwin ���������ݡ��Ȥ��Ƥ��롣�Ĥޤꡢ�Х��ʥ꡼���ۤ�����Ȥ����������֤�ʤ��ΤǶ�ͭ�饤�֥�꡼���ʤ��Ȥ�������Ϥ��뤬��괺�����Ǥ������Τ�ΤǴ֤˹�碌�롣
Xtools �ǤҤä����֤äƤ����ޥ����ο���ȱ��ܥ��� XFree86 �Ǥ��������������ܡ��ɤ�ɸ��� Ascii ����Ǵ򤷤���
�����դʤΤϡ�/private/etc/X11 ���¥ǥ��쥯�ȥ꡼�Ǥ������Xtools �Ǥ� symbolic link���������XFree86 ����������
 
# cd /etc
# mv X11 X11.tenon
# cd /usr
# mv X11R6 X11R6.tenon
# cd <somewhere>
# sh Xinstall.sh
# tar -zxpvf XAqua0.2.tgz -C /
# cd <somewhere>/fonts
# ls
6x12rk.pcf.gz             fonts.alias.75dpi.added   s5x8.pcf.gz
a12.pcf.gz                fonts.alias.misc.added
elisau10.pcf.gz           k12.pcf.gz
# cp *.gz /usr/X11R6/lib/X11/fonts/misc/
# cat fonts.alias.75dpi.added >> /usr/X11R6/lib/X11/fonts/75dpi/fonts.alias
# cat fonts.alias.misc.added >> /usr/X11R6/lib/X11/fonts/misc/fonts.alias
# pushd /usr/X11R6/lib/X11/config
# vi Imake.cf
.....
#if defined(__APPLE__)
# undef __APPLE__
# define MacroIncludeFile <darwin.cf>
# define MacroFile darwin.cf
# define DarwinArchitecture
# define MacOSXArchitecture             # for convenience
#endif


Lesstif ������� OpenMotif �ˤ��Ƥߤ롣

# cd <somewhere>
# ls
Mrm-headers.tar.gz                      libUil.a.gz
Uil-headers.tar.gz                      libXm.a.gz
Xm-headers.tar.gz                       usr-include-headers.tar.gz
libMrm.a.gz
# for i in Mrm-headers.tar.gz Uil-headers.tar.gz Xm-headers.tar.gz; do tar -zxpv
f $i -C /usr/X11R6/include; done
# cp libXm.a.gz libMrm.a.gz libUil.a.gz /usr/X11R6/lib
# pushd /usr/X11R6/lib
# gunzip libXm.a.gz libMrm.a.gz libUil.a.gz
# for i in libXm.a.gz libMrm.a.gz libUil.a.gz; do ranlib -s $i; done
# cd ../include/X11
# for i in ../Xm ../Mrm ../Uil; do ln -s $i .; done
OpenGL ��
# cd ../../lib
# cp /usr/X11R6.tenon/lib/libGLU.a .
# cp /usr/X11R6.tenon/lib/libglut.a .
# for i in libGLU.a libglut.a; do ranlib -s $i; done
# cp -pPR /usr/X11R6.tenon/include/GL /usr/X11R6/include
����Ǥ�äơ�Xaw3d��fvwm2��kinput2��Tcl/Tk��TkDesk �ʤ� X ��Ϣ���󥯤�ľ���������󡢤�äѤ궦ͭ�饤�֥�꡼���ߤ�����
tdr��cernlib executables��dis45 ���󥯤�ľ����XFree86 �ǥ�󥯤�ľ������Τ� -xf86 �Ȥ���������Ĥ��Ƥ��롣

���ܸ쥭���ܡ��ɤ� ascii ����ǻȤ�����

$ vi ~/.Xmodmap
keycode 101 = grave asciitilde
�ʤɤȤ��Ƥ������ޤ���X ��ư���� fvwm2 �� TkDesk ��Ω���夬��褦�ˤ��Ƥ�����
$ cat $HOME/bin/tkdesk
#!/bin/bash
source ~/.profile
xmodmap ~/.Xmodmap
export SHELL=/bin/bash
exec /usr/local/bin/tkdesk $*
$ vi ~/.xinitrc
.....
$HOME/bin/tkdesk $* &
exec /usr/local/bin/fvwm2

$ ln -s .Xdefaults ~/.Xresources

�Ȥˤ�����bash ��Ȥ������Τǡ�.profile �� export SHELL=/bin/bash �ˤ���ȿ§����ȤäƤ��롣

Xtools �����ˤ� /etc/X11 �� /usr/X11R6 �����촹������ɤ���
 

[6] Mach Kernel with Bellardo's  SysV Semaphore

�ޤ��� Darwin �� Kernel Source��xnu-3-1 �� Apple �� Darwin 1.2 source tree ������ꡣ
$ cd xnu
$ pushd bsd/kern
$ patch -s < ~/sandbox/xnu-patches/sysvsem_bsd_kern.patch
$ mv sysv_sem.c sysv_sem.c.ORIG
$ cp ~/sandbox/xnu-patches/sysv_sem.c
$ cd ../sys
$ patch -s < ~/sandbox/xnu-patches/sysvsem_bsd_sys.patch
$ mv sem.h sem.h.ORIG
$ cp ~/sandbox/xnu-patches/sem.h .
$ cd ../conf/
$ patch -s < ~/sandbox/xnu-patches/sysvsem_bsd_conf.patch
$ popd
$ make installhdrs
$ make install
�ѥå�������� precompiled kernel ����������Υޥ���Ǥ�ư��������ư����ݾڤ������ʤ��ΤǻȤ����ϼ�����Ǥ����
 

[7] ROOT 3.00.02

��ȯ�Ķ���
        mach_kernel: xnu-3-1 with John Bellardo's sysv_sem patches
        libdl.dylib: dlcompat-20010123 by Christoph Pfisterer
        standard gcc*-2 + g77 in gcc*-2-macosx-with-g77.tar.gz
        XFree86-4.0.2
        freetype-1.3.1

����ѥ���λ�����

$ tar -zxvf ../orig/root_v3.00.02.source.tar.gz
$ tar -zxvf ../orig/ttf_1.1.tar.gz
# mv ttf/fonts /usr/share/fonts/ttf
# pushd /cern/pro/lib
# ln -s libpythia6134.a libPythia.a
# pushd /System/Library/Frameworks/System.framework/Headers/c++
# cp -p <somewhere>/stream.h .
# cp -p <somewhere>/stdiostream.h .
$ cd root
$ export ROOTSYS=`pwd`
$ export LD_LIBRARY_PATH=$ROOTSYS/lib
$ export PATH=$ROOTSYS/bin:$PATH
$ patch -p1 -s < ../orig/root_v3.00.02-macosx-0.2.patch
$ export PATH=/usr/bin:$PATH    # use standard cc and c++
$ ./configure darwin
$ make
$ cd lib
$ for i in *.dylib; do lib=`basename $i .dylib`; \
        g++ -O -bundle -undefined suppress -o $lib.so $i; done
stream.h �� stdiostream.h �� g++ �Τ�Ρ�Apple ��ɸ��Ǥϥ��󥹥ȡ��뤵��ʤ�������Ǥ� MacOSX �ѥå��ˤϡ�ROOT ���Τ�������Ф���ʲ��Υѥå���ޤޤ�롣
--- 3.00.02/gui/src/TGButton.cxx.ORIG   Tue Oct 17 21:34:52 2000
+++ 3.00.02/gui/src/TGButton.cxx        Tue Feb  6 16:14:45 2001
@@ -76,6 +76,7 @@
    fMsgWindow   = p;
    fUserData    = 0;
    fTip         = 0;
+   fGroup       = 0;

    fNormGC   = norm;
    fState    = kButtonUp;

��������Τ����ǡ�fGroup �˥��ߤ����äƤ���ȡ����Τ�����Ȼפäƻ������ delete �˹Ԥä� seg-fault ���롣
 

���ޤǤ˥���ѥ��뤷����ΤΥ���������ӥѥå��� macosx/src �ˡ��ޤ��Х��ʥ꡼�� tar ball �� macosx/tgz �ޤ��� macosx/darwin.tgz �ˤ��줾���֤��Ƥ��롣���Ĥ�Τ褦�˻Ȥ����ϼ�����Ǥ�ǡ�
 


Back to Keisuke Fujii's MkLinux/LinuxPPC Life