File: devel/glibc/files/gar-base.diff
base-0 patch-1
Line 1Line 1
diff -Nru tmp/glibc-2.2.5/sysdeps/unix/sysv/linux/bits/in.h work/glibc-2.2.5/sysdeps/unix/sysv/linux/bits/in.h
--- tmp/glibc-2.2.5/sysdeps/unix/sysv/linux/bits/in.h        Thu Jul 5 21:56:14 2001
+++ work/glibc-2.2.5/sysdeps/unix/sysv/linux/bits/in.h        Thu Jul 4 23:59:43 2002
@@ -63,11 +63,36 @@
/* Structure used to describe IP options for IP_OPTIONS. The `ip_dst'
field is used for the first-hop gateway when using a source route
(this gets put into the header proper). */
-struct ip_opts
- {
- struct in_addr ip_dst;        /* First hop; zero without source route. */
- char ip_opts[40];                /* Actually variable in size. */
- };
+/* struct ip_opts
+ {
+ struct in_addr ip_dst;
+ char ip_opts[40];
+ }; */
diff --speed-large-files --minimal -Nru tmp/glibc-2.3.2/Makerules work/main.d/glibc-2.3.2/Makerules
--- tmp/glibc-2.3.2/Makerules        Sat Feb 22 15:23:31 2003
+++ work/main.d/glibc-2.3.2/Makerules        Tue Aug 12 00:45:55 2003
@@ -605,8 +605,11 @@
LDLIBS-c.so += $(gnulib)
# Give libc.so an entry point and make it directly runnable itself.
LDFLAGS-c.so += -e __libc_main
-# Force the backward compatibility EH functions to be linked.
-LDFLAGS-c.so += -u __register_frame
+
+
+/* In ANSI C++, a struct may not have a member with the same name as the
+ * struct. This rule is ignored by g++ in header files included from
+ * standard system include paths, but not files included via -I. The result
+ * is that a C++ program which includes <netinet/in.h> and gets the present
+ * file in a -I specified include directory will fail to compile. (lftp is
+ * one example of such a program.)
+ *
+ * One solution provided by
+ *
+ * http://www.monkey.org/openbsd/archive/bugs/9812/msg00097.html
+ *
+ * is used below. If you want the original definition, it's commented out
+ * immediately above. */
+
+struct ip_opts {
+ struct in_addr ip_dst; /* first hop, 0 w/o src rt */
+#if defined(__cplusplus)
+#warning ip_opts structure for C++ MODIFIED by LNX-BBC; see <bits/in.h>!
+ char Ip_opts[40]; /* cannot have same name as class */
+#else
+ char ip_opts[40]; /* actually variable in size */
+#endif
+};
+# Force the backward compatibility EH functions to be linked. -Zack Weinberg
+# Take it out because it fills up libc.so.lds with linker errors. -Nate Riffe
+#LDFLAGS-c.so += -u __register_frame
+
+

# Pre-link the objects of libc_pic.a so that we can locally resolve
# COMMON symbols before we link against ld.so. This is because ld.so
# contains some of libc_pic.a already, which will prevent the COMMONs
diff --speed-large-files --minimal -Nru scratch/glibc-2.3.2/configure work/main.d/glibc-2.3.2/configure
--- scratch/glibc-2.3.2/configure        2003-02-26 03:20:48.000000000 -0600
+++ work/main.d/glibc-2.3.2/configure        2003-08-06 17:33:50.000000000 -0500
@@ -2271,10 +2271,7 @@
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
- '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 3.[2-9]*)
- ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
- *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ *) ac_prog_version="$ac_prog_version, fine"; ac_verc_fail=no;;


/* Structure used for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */
struct ip_mreq
esac
echo "$as_me:$LINENO: result: $ac_prog_version" >&5