A little more info from my notes in case anyone is interested. YMMV and don't blame me if your views get trashed, but we haven't seen any problems with this approach:
To generate your own glibc for use by cleartool:
- extract the src (this is for RedHat)
mkdir my_glibc; cd my_glibc rpm2cpio | cpio -iumd tar jxf glibc-...-tar.bz2
- edit sysdeps/unix/sysv/linux/sleep.c to just return 0 if seconds==6
- make build dir within glibc-2.2... dir created by extract
- from within build dir, configure and make
cd my_glibc/glibc-2.2..../build../configure --enable-add-ons=yes --without-cvs make
Here's a stacktrace when cleartool is making the sleep call, showing that their sysutl_nfs_flush function is indeed calling a sleep(6), luckily I've overwritten the sleep(6) to return immediately:
#0 0x409a9f01 in __libc_nanosleep () from/home/xp/glibc-2.2.4/build/libc.so.6 #1 0x409a9e82 in __sleep (seconds=6) at../sysdeps/unix/sysv/linux/sleep.c:85 #2 0x40815c3d in sysutl_nfs_flush () from/usr/atria/shlib/libatriaks.so #3 0x40815beb in sysutl_nfs_flush () from/usr/atria/shlib/libatriaks.so #4 0x40815beb in sysutl_nfs_flush () from/usr/atria/shlib/libatriaks.so #5 0x40815beb in sysutl_nfs_flush () from/usr/atria/shlib/libatriaks.so #6 0x40815beb in sysutl_nfs_flush () from/usr/atria/shlib/libatriaks.so #7 0x40815beb in sysutl_nfs_flush () from/usr/atria/shlib/libatriaks.so #8 0x40815beb in sysutl_nfs_flush () from/usr/atria/shlib/libatriaks.so #9 0x407fc15f in fileutl_walk_tree_any () from/usr/atria/shlib/libatriaks.so #10 0x407fc389 in fileutl_walk_tree () from/usr/atria/shlib/libatriaks.so #11 0x407fdf69 in fileutl_cp () from/usr/atria/shlib/libatriaks.so #12 0x406d0482 in ws_copy_file () from/usr/atria/shlib/libatriaview.so #13 0x406d40a6 in ws_add_wso_file () from/usr/atria/shlib/libatriaview.so #14 0x406d44e9 in ws_add_wso () from/usr/atria/shlib/libatriaview.so #15 0x406d70e6 in ws_load_one_object () from/usr/atria/shlib/libatriaview.so #16 0x406d63fb in ws_load_dir_ents () from/usr/atria/shlib/libatriaview.so #17 0x406d72a0 in ws_load_one_object () from/usr/atria/shlib/libatriaview.so #18 0x406d63fb in ws_load_dir_ents () from/usr/atria/shlib/libatriaview.so #19 0x406d72a0 in ws_load_one_object () from/usr/atria/shlib/libatriaview.so #20 0x406d7678 in ws_load_one_scope () from/usr/atria/shlib/libatriaview.so #21 0x406d9c34 in ws_load_scopes () from/usr/atria/shlib/libatriaview.so #22 0x40120062 in cmd_update_subr () from/usr/atria/shlib/libatriacmd.so #23 0x4011f86c in cmd_update () from/usr/atria/shlib/libatriacmd.so #24 0x40050013 in cmdsyn_update () from/usr/atria/shlib/libatriacmdsyn.so #25 0x4002feea in cmdsyn_do_command () from/usr/atria/shlib/libatriacmdsyn.so #26 0x400300cd in cmdsyn_execv_dispatch () from/usr/atria/shlib/libatriacmdsyn.so #27 0x4044b92e in tool_main () from/usr/atria/shlib/libatriatool.so #28 0x080499cc in main ()
Do a strace of cleartool. After every file they have a 6 second sleep. So we just link in a glibc with sleep(6) overridden to not sleep. Works like a charm.
We've supposedly opened a call with Rational, but I haven't heard anything.
I can make the glibc binaries available that we use on my website if anyone is interested and doesn't want to go through the effort of recompiling glibc themselves.
Now why would they be sleeping for 6 seconds when it doesn't appear to be necessary: 1: conspiracy theory-- M$ told them to 2: inept programming-- deadlock in their code, ahh, just put a sleep in to fix it 3: smart programmer-- It's review time, need to make this faster, I know, change that sleep(6) to sleep(5). 4: problem with Linux NFS... no can't be!
-discrete manufacturing partners could share parts, assemblies and full products via the internet. Ideally you'd search for a bolt via a google like search engine and it'd pull up a 3d representation of the bolts available. You could rotate it etc to see if it'll fit into your product.
-web sales would benefit immensely. You can already pull up 3d representation of the car you'd like to buy (via flash?) on some auto manufacturers sites. I've got to imagine that took quite a bit of work that wasn't directly derived from the engineer's models. With a standard format, I've got to imagine it'd be somewhat simple (or at least reusable) to have a web interface to add options which change the model. Web sales will not overtake brick and mortar until the user can at least spin a product in 3d to get a feel for it, not to mention build to order.
-repair and support could be placed on the web. The article states how the armed forces could have repair manuals available via web with all the parts, etc. Same for auto repair. At least they're getting away from printed repair docs, but I believe most still come in proprietary format via CD monthly or quarterly for big bucks. Doubt the ma & pa repair shops can afford it.
Bought an Inspiron 7500 a year or so back and they told me I couldn't get RH installed on it. Fine, I'd prefer to install it "correctly" myself anyway. They wouldn't even send with a clean disk and relieve me of the M$ tax. I didn't mind paying the price I did, just didn't want any of it going to Bill. Why pay him for something I'll just end up deleting.
It's a great machine, a tank, but a good development/server alternative for the road. Also love their workstations, mines been running linux and ms-free for the past 3 years. Never had a problem.
A little more info from my notes in case anyone is interested. YMMV and don't blame me if your views get trashed, but we haven't seen any problems with this approach:
../configure --enable-add-ons=yes --without-cvs
_ PATH
/home/xp/glibc-2.2.4/build/libc.so.6 ../sysdeps/unix/sysv/linux/sleep.c:85 /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaks.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriaview.so /usr/atria/shlib/libatriacmd.so /usr/atria/shlib/libatriacmd.so /usr/atria/shlib/libatriacmdsyn.so /usr/atria/shlib/libatriacmdsyn.so /usr/atria/shlib/libatriacmdsyn.so /usr/atria/shlib/libatriatool.so
To generate your own glibc for use by cleartool:
- extract the src (this is for RedHat)
mkdir my_glibc; cd my_glibc
rpm2cpio | cpio -iumd
tar jxf glibc-...-tar.bz2
- edit sysdeps/unix/sysv/linux/sleep.c to just return 0 if seconds==6
- make build dir within glibc-2.2... dir created by extract
- from within build dir, configure and make
cd my_glibc/glibc-2.2..../build
make
- put the pieces together
mkdir ~/myct
cp my_glibc/glibc-2.2..../libc.so.X ~/myct
create a wrapper script to execute cleartool using this glibc:
#!/bin/bash
LD_LIBRARY_PATH=~/myct:$LD_LIBRARY
exec cleartool ${*}
- use it
~/myct/ct update
Here's a stacktrace when cleartool is making the sleep call, showing that their sysutl_nfs_flush function is indeed calling a sleep(6), luckily I've overwritten the sleep(6) to return immediately:
#0 0x409a9f01 in __libc_nanosleep () from
#1 0x409a9e82 in __sleep (seconds=6) at
#2 0x40815c3d in sysutl_nfs_flush () from
#3 0x40815beb in sysutl_nfs_flush () from
#4 0x40815beb in sysutl_nfs_flush () from
#5 0x40815beb in sysutl_nfs_flush () from
#6 0x40815beb in sysutl_nfs_flush () from
#7 0x40815beb in sysutl_nfs_flush () from
#8 0x40815beb in sysutl_nfs_flush () from
#9 0x407fc15f in fileutl_walk_tree_any () from
#10 0x407fc389 in fileutl_walk_tree () from
#11 0x407fdf69 in fileutl_cp () from
#12 0x406d0482 in ws_copy_file () from
#13 0x406d40a6 in ws_add_wso_file () from
#14 0x406d44e9 in ws_add_wso () from
#15 0x406d70e6 in ws_load_one_object () from
#16 0x406d63fb in ws_load_dir_ents () from
#17 0x406d72a0 in ws_load_one_object () from
#18 0x406d63fb in ws_load_dir_ents () from
#19 0x406d72a0 in ws_load_one_object () from
#20 0x406d7678 in ws_load_one_scope () from
#21 0x406d9c34 in ws_load_scopes () from
#22 0x40120062 in cmd_update_subr () from
#23 0x4011f86c in cmd_update () from
#24 0x40050013 in cmdsyn_update () from
#25 0x4002feea in cmdsyn_do_command () from
#26 0x400300cd in cmdsyn_execv_dispatch () from
#27 0x4044b92e in tool_main () from
#28 0x080499cc in main ()
Do a strace of cleartool. After every file they have a 6 second sleep. So we just link in a glibc with sleep(6) overridden to not sleep. Works like a charm.
We've supposedly opened a call with Rational, but I haven't heard anything.
I can make the glibc binaries available that we use on my website if anyone is interested and doesn't want to go through the effort of recompiling glibc themselves.
Now why would they be sleeping for 6 seconds when it doesn't appear to be necessary:
1: conspiracy theory-- M$ told them to
2: inept programming-- deadlock in their code, ahh, just put a sleep in to fix it
3: smart programmer-- It's review time, need to make this faster, I know, change that sleep(6) to sleep(5).
4: problem with Linux NFS... no can't be!
There's plenty of need:
-discrete manufacturing partners could share parts, assemblies and full products via the internet. Ideally you'd search for a bolt via a google like search engine and it'd pull up a 3d representation of the bolts available. You could rotate it etc to see if it'll fit into your product.
-web sales would benefit immensely. You can already pull up 3d representation of the car you'd like to buy (via flash?) on some auto manufacturers sites. I've got to imagine that took quite a bit of work that wasn't directly derived from the engineer's models. With a standard format, I've got to imagine it'd be somewhat simple (or at least reusable) to have a web interface to add options which change the model. Web sales will not overtake brick and mortar until the user can at least spin a product in 3d to get a feel for it, not to mention build to order.
-repair and support could be placed on the web. The article states how the armed forces could have repair manuals available via web with all the parts, etc. Same for auto repair. At least they're getting away from printed repair docs, but I believe most still come in proprietary format via CD monthly or quarterly for big bucks. Doubt the ma & pa repair shops can afford it.
How about Windchill?
Bought an Inspiron 7500 a year or so back and they told me I couldn't get RH installed on it. Fine, I'd prefer to install it "correctly" myself anyway. They wouldn't even send with a clean disk and relieve me of the M$ tax. I didn't mind paying the price I did, just didn't want any of it going to Bill. Why pay him for something I'll just end up deleting.
It's a great machine, a tank, but a good development/server alternative for the road. Also love their workstations, mines been running linux and ms-free for the past 3 years. Never had a problem.