summaryrefslogtreecommitdiff
path: root/os-patches
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1998-03-13 02:25:37 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1998-03-13 02:25:37 +0000
commit685b97de300c12fa9f9a7b90672a3313260bf2d7 (patch)
tree77f3153fcde2ea846ad3335870973522d3b9e1a1 /os-patches
parent0482076b9fa3dc13acaca1497f592c56d099b2f1 (diff)
downloadATCD-685b97de300c12fa9f9a7b90672a3313260bf2d7.tar.gz
*** empty log message ***
Diffstat (limited to 'os-patches')
-rw-r--r--os-patches/linux-patches.html190
-rw-r--r--os-patches/lynxos-patches.html91
2 files changed, 281 insertions, 0 deletions
diff --git a/os-patches/linux-patches.html b/os-patches/linux-patches.html
new file mode 100644
index 00000000000..e5f07f598df
--- /dev/null
+++ b/os-patches/linux-patches.html
@@ -0,0 +1,190 @@
+<html> <head>
+<title></title>
+</head>
+
+<BODY text = "#000000"
+link="#000fff"
+vlink="#ff0f0f"
+bgcolor="#ffffff">
+
+With RedHat 5.0 distributions of Linux, it's best to upgrade the
+distribution with these:
+<ul>
+ <li>egcs 1.0.1
+ <li>glibc-2.0.6 (from ftp://sunsite.unc.edu/pub/gnu plus Torbjörn's patch)
+ <li>linuxthreads 0.7? for the glibc-2.0.6 above
+</ul>
+
+In addition, you'll need to apply Torbjörn Lindgren's
+&lt;tl@funcom.com&gt; patch to glibc-2.0.6's LinuxThread:<p>
+
+<pre>
+--- signals.c.old Wed Jan 14 01:09:02 1998
++++ signals.c Wed Jan 14 01:11:37 1998
+@@ -82,7 +82,7 @@
+ pthread_mutex_lock(&sigwaited_mut);
+ /* Make sure no other thread is waiting on our signals */
+ test_again:
+- for (s = 0; s &lt; NSIG; s++) {
++ for (s = 1; s &lt; NSIG; s++) {
+ if (sigismember(set, s) && sigismember(&sigwaited, s)) {
+ pthread_cond_wait(&sigwaited_changed, &sigwaited_mut);
+ goto test_again;
+@@ -96,7 +96,7 @@
+ /* Install our signal handler on all signals in set,
+ and unblock them in mask.
+ Also mark those signals as being sigwaited on */
+- for (s = 1; s &lt;= NSIG; s++) {
++ for (s = 1; s &lt; NSIG; s++) {
+ if (sigismember(set, s) && s != PTHREAD_SIG_CANCEL) {
+ sigdelset(&mask, s);
+ action.sa_handler = __pthread_sighandler;
+@@ -121,7 +121,7 @@
+ self-&gt;p_cancel_jmp = NULL;
+ /* The signals are now reblocked. Restore the sighandlers. */
+ pthread_mutex_lock(&sigwaited_mut);
+- for (s = 1; s &lt;= NSIG; s++) {
++ for (s = 1; s &lt; NSIG; s++) {
+ if (sigismember(set, s) && s != PTHREAD_SIG_CANCEL) {
+ sigaction(s, &(saved_signals[s]), NULL);
+ sigdelset(&sigwaited, s);
+</pre>
+
+Thanks to James CE Johnson &lt;jjohnson@lads.com&gt;, Torbjörn
+Lindgren &lt;tl@funcom.com&gt;, and Oleg Krivosheev
+&lt;kriol@fnal.gov&gt; for this information; Torbjörn supplied the
+above patch. With the above configuration, Jame and Torbjörn report
+that only ACE Thread_Manager_Test seg faults on Intel platforms!
+
+Without the following patch from Scott Snyder &lt;sss@d0linux01.fnal.gov&gt;,
+egcs 1.0.1 on Linux won't be able to compile
+netsvcs/lib/Server_Logging_Handler.cpp:
+
+<pre>
+1997-12-10 scott snyder &lt;sss@d0linux01.fnal.gov&gt;
+
+ * method.c (make_thunk): Avoid name buffer overflow.
+
+
+Index: gcc/cp/method.c
+===================================================================
+RCS file: /d0sgi0/usr0/snyder/CVSROOT/egcs/gcc/cp/method.c,v
+retrieving revision 1.1.1.5
+diff -c -r1.1.1.5 method.c
+*** method.c 1997/12/08 21:06:03 1.1.1.5
+--- method.c 1997/12/11 05:40:37
+***************
+*** 1811,1817 ****
+ tree function;
+ int delta;
+ {
+! char buffer[250];
+ tree thunk_id;
+ tree thunk;
+ char *func_name;
+--- 1811,1817 ----
+ tree function;
+ int delta;
+ {
+! char *buffer;
+ tree thunk_id;
+ tree thunk;
+ char *func_name;
+***************
+*** 1822,1827 ****
+--- 1822,1828 ----
+ if (TREE_CODE (func_decl) != FUNCTION_DECL)
+ abort ();
+ func_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (func_decl));
++ buffer = (char *)alloca (strlen (func_name) + 32);
+ if (delta&lt;=0)
+ sprintf (buffer, "__thunk_%d_%s", -delta, func_name);
+ else
+</pre>
+
+With RedHat 5.0 on Alpha CPUs, two system patches and one
+glibc-2.0.6/linuxthreads patch are necessary in addition to the above.
+The first patch is for the GNU assembler, gas. It is only necessary
+on Alphas, and only when <code>-g</code> is used. If you don't want
+to patch the assembler, you can enable the SUPPRESS_DASH_G option in
+the <code>platform_linux.GNu</code>. Otherwise, this patch can be
+applied to the binutils gas source. Then, rebuild and install as.
+The file to be patched is binutils-2.8.1/gas/config/tc-alpha.h:<p>
+
+<pre>
+--- tc-alpha.h.orig Mon May 26 12:32:38 1997
++++ tc-alpha.h Sat Feb 28 06:45:41 1998
+@@ -25,6 +25,8 @@
+
+ #define TARGET_ARCH bfd_arch_alpha
+
++#define PAGE_SIZE 8192
++
+ #define TARGET_FORMAT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour \
+ ? "ecoff-littlealpha" \
+ : OUTPUT_FLAVOR == bfd_target_elf_flavour \
+</pre><p>
+
+In addition, you'll need to patch
+<code>/usr/src/linux/include/linux/posix_types.h</code> as follows
+to avoid compilation errors:<p>
+
+<pre>
+--- posix_types.h.ORIGINAL Wed Nov 12 12:01:56 1997
++++ posix_types.h Fri Feb 27 14:13:16 1998
+@@ -41,9 +41,14 @@
+ #undef __FDMASK
+ #define __FDMASK(d) (1UL &lt;&lt; ((d) % __NFDBITS))
+
++#if defined (__KERNEL__)
+ typedef struct fd_set {
+ unsigned long fds_bits [__FDSET_LONGS];
+ } __kernel_fd_set;
++#else /* ! __KERNEL__ */
++#include &lt;gnu/types.h&gt;
++typedef __fd_set __kernel_fd_set;
++#endif /* ! __KERNEL__ */
+
+ /* Type of a signal handler. */
+ typedef void (*__kernel_sighandler_t)(int);
+</pre><p>
+
+Finally, on Alpha only, I removed wrapsyscall from the LinuxThreads
+library by patching linuxthreads/Makefile:
+
+<pre>
+36c36
+&lt; semaphore wrapsyscall
+---
+&gt; semaphore # wrapsyscall
+</pre>
+
+With that and the above configuration/pathes, all ACE tests run
+perfectly cleanly on Alpha!<p>
+
+<strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
+There is a bug in <code>getsockname ()</code> on versions of Linux
+through 2.0.30, at least. <code>getsockname ()</code> returns an
+Internet host address of 127.0.0.1 (localhost) instead of 0.0.0.0 for
+sockets that aren't connected. This bug prevents TAO servers from
+working correctly. To fix it, comment out these two lines in function
+<code>inet_getname ()</code> in
+<code>/usr/src/linux/net/ipv4/af_inet.c</code>:
+
+<pre>
+ } else {
+ __u32 addr = sk-&gt;rcv_saddr;
+ if (!addr) {
+ addr = sk-&gt;saddr;
+/* comment out this line: if (!addr) */
+/* comment out this line: addr = ip_my_addr(); */
+ }
+ sin-&gt;sin_port = sk-&gt;dummy_th.source;
+ sin-&gt;sin_addr.s_addr = addr;
+ }
+</pre>
+
+and rebuild your kernel. This fix has been implemented in 2.1.x
+versions of the kernel.<p>
+
+</body> </html>
diff --git a/os-patches/lynxos-patches.html b/os-patches/lynxos-patches.html
new file mode 100644
index 00000000000..04275561610
--- /dev/null
+++ b/os-patches/lynxos-patches.html
@@ -0,0 +1,91 @@
+<html> <head>
+<title></title>
+</head>
+
+<BODY text = "#000000"
+link="#000fff"
+vlink="#ff0f0f"
+bgcolor="#ffffff">
+
+ With LynxOS 2.5.0-FCS version: 012797-G, you'll need to apply this
+ patch:<p>
+ <pre>ftp://ftp.lynx.com/pub/patches/v2.5-patches/v2.5-on-x86/000134-00.tar.Z
+ </pre><p>
+
+ And, you'll need to apply the following four patches:
+ <ol>
+ <li><code>Patch /usr/include/netinet/in.h</code>:<p>
+<pre>
+--- in.h.ORIGINAL Sat Feb 8 09:58:28 1997
++++ in.h Wed Nov 26 15:41:04 1997
+@@ -278,8 +278,7 @@
+ compiler, the macros are not defined: Functions must be used.
+ */
+ static __inline__ unsigned short
+-htons(arg)
+-unsigned short arg;
++htons(unsigned short arg)
+ {
+ unsigned short retval;
+
+@@ -292,8 +291,7 @@
+ }
+
+ static __inline__ unsigned long
+-htonl(arg)
+-unsigned long arg;
++htonl(unsigned long arg)
+ {
+ unsigned long retval;
+</pre><p>
+
+ <li><code>Patch /usr/include/name.h</code>:<p>
+<pre>
+--- name.h.ORIGINAL Sat Feb 8 11:57:36 1997
++++ name.h Wed Dec 24 11:00:57 1997
+@@ -112,7 +112,11 @@
+ static __inline__ int _name_fchmod(int nsid, mode_t mode)
+ { return _name_server(_NS_FCHMOD, nsid, mode); }
+
++#if defined __cplusplus
++static __inline__ int _name_fchown(int /* nsid */, uid_t owner, gid_t group)
++#else
+ static __inline__ int _name_fchown(int nsid, uid_t owner, gid_t group)
++#endif /* __cplusplus */
+ { return _name_server(_NS_FCHOWN, owner, group); }
+
+ static __inline__ int _name_close(int nsid)
+</pre>
+
+ <li><code>Patch /usr/include/scsi.h</code>:<p>
+<pre>
+--- scsi.h.ORIGINAL Sat Feb 8 09:57:43 1997
++++ scsi.h Mon Dec 1 09:13:13 1997
+@@ -166,7 +166,7 @@
+ ------------------------------------------------------------------------------
+ */
+ #define GET_DATA_BUFFER_STATUS 0x34 /* O 14.2.1 */
+-#define GET WINDOW 0x25 /* O 14.2.2 */
++#define GET_WINDOW 0x25 /* O 14.2.2 */
+ #define OBJECT_POSITION 0x31 /* O 14.2.3 */
+ #define SCAN 0x1B /* O 14.2.5 */
+ #define SET_WINDOW 0x24 /* M 14.2.6 */
+</pre>
+
+ <li><code>Patch /usr/include/netdb.h</code>:<p>
+<pre>
+--- netdb.h.ORIGINAL Sat Feb 8 09:57:36 1997
++++ netdb.h Mon Dec 1 10:57:15 1997
+@@ -95,6 +95,8 @@
+ extern struct protoent *getprotobyname _AP((char *));
+ extern struct protoent *getprotobynumber _AP((int));
+ extern struct protoent *getprotoent _AP((void));
++int sethostent _AP((int));
++int endhostent _AP((void));
+
+ /*
+ * Error return codes from gethostbyname() and gethostbyaddr()
+</pre>
+ </ol>
+
+</body> </html>