Updated: Sat Feb 11 22:55:03 1995 This is a list of problems I've been having on various platforms. Almost all of them are fixed or hacked around for now, but perhaps someone else might find it useful later on. *** ALL ioctl breaks everything because it is getting called at initialization time before everything else is ready... have to figure this one out generically. FIXED. pulled in isatty and hacked around the problem. * Sparc, Sunos 4.1.3 1] test_sock_1 core dumps when the sleep in the initial thread ends. reason: context_switch() calls sig_handler(0) in the loop at the end which calls pthread_sig_register() which expects pthread_run to be non-NULL, but in this case it is guaranteed to be NULL. Setting pthread_run to next does not appear to be the answer, as the sleep then never terminates. I don't grok the signal.c code well enough to see the light here. FIXED 2] engine-sparc-sunos-4.1.3.h. __FD_NONBLOCK is set to O_NONBLOCK, which doesn't appear to work, at least for me -- test_sock_1 does not work because we block in accept. Changing it to O_NDELAY makes things work, but I'm not sure of the implications. FIXED, use (O_NONBLOCK|O_NDELAY) like for ultrix 3] test_fork doesn't work. Not sure why. FIXED, apparently by the fix to #1 4] test_pthread_cond_timedwait fails with a segfault, and it really smells like problem #1. FIXED, apparently by the fix to #1 * HP, HP-UX 9.03 1] configure complains that it can't find timezone stuff. I cannot figure out what to do in this case, as I'm new to HP-UX. This looks really nasty; there are no timezone files for HP! Instead, there is this thing called tztab. How can we get around this? HACKED AROUND. proven sent me bsd zoneinfo files and I've figured out a way to trick depot into installing them in a reasonable place on our hps. NOTE That if you want to compile under HP-UX, you have to get this stuff or there will be trouble. 2] unistd.h doesn't get linked in from machdep... why? Not sure if I fixed this or not. 3] syscall.S compiles but produces non-global symbols for everything but machdep_sys_fork. I don't know HPUX asm syntax enough to know why, but if you look at the macro and the defn of fork, it doesn't look like there would be ANY difference. HACKED AROUND. ran syscall.S through gcc -E by hand, fixed it up and added some addl syscalls. This is not pretty, but it does work for now. 4] floating point output from stdio didn't work. same ifdef as for alphas 5] test_fork still acts funny. it works, more or less, when I run it from gdb, but never terminates when I run it from the shell. I traced through things for a while, but never did figure it out. I will have to, though, because I have code that needs to use fork(). * Alpha, OSF/1 1.3 1] gcc pukes all over the place unless you give it -I/include -fno-builtin Check gcc configuration. 2] It does not appear as if any of the net/ code was ever compiled on an alpha, because u_long is everywhere, and it is WRONG. I changed it to __u_intt32, which I added to machdep/alpha-osf1/types.h, which I copied from sys/types.h. I also copied some net header files from arpa/ and renamed them arpa_ in the machdep/alpha-osf1/ and changed out source appropriately, because all the prototypes were wrong. UPDATE: I found the include/arpa directory after doing the above. I revamped things, stole a bunch of headers 4.4bsd lite and got things to compile cleanly on the alpha by using u_int32_t and u_int16_t everywhere and adding defns of {u_,}int{16,32}_t to cdefs.h for all ports. FIXED for now. UPDATE: Moved to pthread_ipaddr_type, but I really, really dislike the fact that it lives in config.h, since I can't cleanly include that from any exported header file, which means I can't use it in exported header files without defining it myself anyway, so what is the point of the config.h hack? I just punted and added #ifdef'ed defns of it to inet.h and nameser.h so that the netdb code would compile and work. 3] Needed uio.h. OK. 4] test_stdio_1 fails if you test floating point #s Merge in ifdefs from my copy of 1.5 in vfprintf.c * Linux -- NOT DONE YET 1] Added the int types to cdefs.h. Is this the right place to put them? 2] unistd.h doesn't get linked in from machdep -- why?