[Bug 190851] New: lang/mono build broken when using binutils from ports

bz-noreply at freebsd.org bz-noreply at freebsd.org
Tue Jun 10 01:03:22 UTC 2014


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=190851

            Bug ID: 190851
           Summary: lang/mono build broken when using binutils from ports
           Product: Ports Tree
           Version: Latest
          Hardware: Any
                OS: Any
            Status: Needs Triage
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: freebsd-ports-bugs at FreeBSD.org
          Reporter: truckman at FreeBSD.org

Update r355323 to lang/mono/Makefile broke the mono build on FreeBSD
8.4-STABLE.

FreeBSD scratch.catspoiler.org 8.4-STABLE FreeBSD 8.4-STABLE #80 r266818M: Thu
May 29 02:41:55 PDT 2014    
dl at scratch.catspoiler.org:/usr/obj/usr/src/sys/GENERICDDB  i386

mono-3.4.0_1
binutils-2.24
clang33-3.3_6

When I attempt to build mono in this environment, it fails like this:

  CC     libmini_static_la-tramp-x86.lo
  CC     libmini_static_la-mini-posix.lo
  CXXLD  libmini.la
  CCLD   libmonoboehm-2.0.la
  CCLD   libmonosgen-2.0.la
  CXXLD  libmini-static.la
  CC     mono_boehm-main.o
  CC     mono_sgen-main-sgen.o
  CCLD   mono-boehm
  CCLD   mono-sgen
/usr/local/bin/ld: mono-boehm: local symbol `__progname' in /usr/lib/crt1.o is
referenced by DSO
/usr/local/bin/ld: final link failed: Bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[4]: *** [mono-boehm] Error 1
gmake[4]: *** Waiting for unfinished jobs....
/usr/local/bin/ld: mono-sgen: local symbol `__progname' in /usr/lib/crt1.o is
referenced by DSO
/usr/local/bin/ld: final link failed: Bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[4]: *** [mono-sgen] Error 1
gmake[4]: Leaving directory `/usr/ports/lang/mono/work/mono-3.4.0/mono/mini'
gmake[3]: *** [all] Error 2
gmake[3]: Leaving directory `/usr/ports/lang/mono/work/mono-3.4.0/mono/mini'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/usr/ports/lang/mono/work/mono-3.4.0/mono'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/lang/mono/work/mono-3.4.0'
gmake: *** [all] Error 2
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1


One of the changes to lang/mono/Makefile in r355323 was the replacement of
some logic to force the use of clang33 for ${OSVERSION} < 902001 with
USES=compiler:c11.  In ports/Mk/Uses/compiler.mk, there is some logic c11
also results in clang33 being chosen for the compiler.  There is some
additional logic:

.if ${OSVERSION} < 900033
USE_BINUTILS=   yes
LDFLAGS+=       -B${LOCALBASE}/bin
.endif

which causes the mono build to use the ports version of binutils instead of
the version in base.

If I hack ports/Mk/Uses/compiler.mk like this:

Index: Mk/Uses/compiler.mk
===================================================================
--- Mk/Uses/compiler.mk    (revision 356868)
+++ Mk/Uses/compiler.mk    (working copy)
@@ -154,8 +154,8 @@
 CXX=    ${LOCALBASE}/bin/clang++33
 CHOSEN_COMPILER_TYPE=    clang
 .if ${OSVERSION} < 900033
-USE_BINUTILS=    yes
-LDFLAGS+=    -B${LOCALBASE}/bin
+#USE_BINUTILS=    yes
+#LDFLAGS+=    -B${LOCALBASE}/bin
 .endif
 .endif
 .endif
@@ -180,8 +180,8 @@
 CC=    ${LOCALBASE}/bin/clang33
 CXX=    ${LOCALBASE}/bin/clang++33
 .if ${OSVERSION} < 900033
-USE_BINUTILS=    yes
-LDFLAGS+=    -B${LOCALBASE}/bin
+#USE_BINUTILS=    yes
+#LDFLAGS+=    -B${LOCALBASE}/bin
 .endif
 .endif
 .endif
@@ -206,8 +206,8 @@
 CC=    ${LOCALBASE}/bin/clang33
 CXX=    ${LOCALBASE}/bin/clang++33
 .if ${OSVERSION} < 900033
-USE_BINUTILS=    yes
-LDFLAGS+=    -B${LOCALBASE}/bin
+#USE_BINUTILS=    yes
+#LDFLAGS+=    -B${LOCALBASE}/bin
 .endif
 .endif
 .endif

the mono build uses the base version of binutils and succeeds.  This is the
opposite of my usual experience with binutils on 8.4-STABLE.  Normally the
ports version works better than the base version ...

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list