Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/usr.sbin/puffs/rump_smbfs



On Thursday 2009-09-10 13:55 +0300, Antti Kantee output:
:No, that is *absolutely the wrong thing*, since while it might make
:the build work, it breaks the resulting binary.  I'm a bit baffled that
:breakage like that was committed to rump_nfs/Makefile in the first place.
:
:It seems there is a regression in binutils 2.19 which prevents the
:standard DOMAIN_DEFINE() macro from working.  I suggest reverting back
:to 2.16 until the cause is identified and the bug is fixed.

No, that's a red herring.  The problem is a long-standing one with
sys/kern/uipc_domain.c (from rev 1.49 2005/01/23 onwards).

Someone has it use link sets without ever creating a section header so
that they actually work properly.  This caused librumpnet.so to also
have a bad copy.  With the following initial patch, you should see
a link section with "objdump -h".  The second patch just removes the
other wrong build stuff.

Regards,
Geoff

Index: sys/kern/uipc_domain.c
===================================================================
RCS file: /cvsroot/src/sys/kern/uipc_domain.c,v
retrieving revision 1.83
diff -u -r1.83 uipc_domain.c
--- sys/kern/uipc_domain.c      8 Sep 2009 18:01:34 -0000       1.83
+++ sys/kern/uipc_domain.c      11 Sep 2009 04:25:50 -0000
@@ -76,6 +76,9 @@
 static struct sysctllog *domain_sysctllog;
 static void sysctl_net_setup(void);
 
+static struct domain dummy_static_domain;
+__link_set_add_bss(domains, dummy_static_domain);
+
 void
 domaininit(bool addroute)
 {

Index: usr.sbin/puffs/rump_nfs/Makefile
===================================================================
RCS file: /cvsroot/src/usr.sbin/puffs/rump_nfs/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- usr.sbin/puffs/rump_nfs/Makefile    21 Aug 2009 14:41:22 -0000      1.4
+++ usr.sbin/puffs/rump_nfs/Makefile    11 Sep 2009 04:26:11 -0000
@@ -20,9 +20,6 @@
 #LDADD+=       -lrumpfs_nfs -lrumpnet -lrumpnet_net -lrumpnet_netinet  \
                -lrumpnet_virtif
 
-LDFLAGS+=      -Wl,--ignore-unresolved-symbol,__start_link_set_domains
-LDFLAGS+=      -Wl,--ignore-unresolved-symbol,__stop_link_set_domains
-
 ISRUMP=                # gives me nightmares
 #CPPFLAGS+=    -DINET6 # for getnfsargs?
 


Home | Main Index | Thread Index | Old Index