diff mbox

[build] Enable libcilkrts multilib build on Solaris

Message ID yddhabgief1.fsf@lokon.CeBiTec.Uni-Bielefeld.DE
State New
Headers show

Commit Message

Rainer Orth Nov. 13, 2013, 2:06 p.m. UTC
Balaji,

currently configuring the non-default libcilkrts multilib fails on
Solaris/x86 like this:

configure:3139: checking whether the C++ compiler works
configure:3148: ./a.out
ld.so.1: a.out: fatal: /var/gcc/regression/trunk/10-gcc/build/./gcc/libgcc_s.so.1: wrong ELF class: ELFCLASS32
/vol/gcc/src/hg/trunk/local/libcilkrts/configure[3150]: 26758 Killed
configure:3152: $? = 137
configure:3159: error: in `/var/gcc/regression/trunk/10-gcc/build/i386-pc-solaris2.10/amd64/libcilkrts':
configure:3161: error: cannot run C++ compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.

This happens because there's no installed amd64 libgcc_s.so.1 on the
system, and toplevel Makefile only sets LD_LIBRARY_PATH for the default
multilib.  Initially, I thought that there were something special going
on, but it turned out that other runtime libs containing C++ code don't
have this problem, which can easily be cured by the following patch.  It
allowed a C++-only i386-pc-solaris2.10 bootstrap to finish, make check
currently running.  I'm currently also running an
x86_64-unknown-linux-gnu bootstrap to make sure nothing breaks there.

Ok for mainline if those pass?

Btw., I noticed a couple of other anomalies:

* configure.ac has

  GCC_LIBSTDCXX_RAW_CXX_FLAGS

  but does nothing with the result: Makefile.in substitutes the results,
  but that's it.  Also, toplevel Makefile.tpl should set raw_cxx=true it
  this were useful, which it doesn't do as well.

* MAINTAINERS doesn't list a maintainer for libcilkrts.

* I believe there should be a libcilkrts bugzilla category, intead of
  having to use other.

Thanks.
        Rainer


2013-11-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (AC_PROG_CXX): Move after AC_PROG_CC.
	* configure: Regenerate.

Comments

Paolo Bonzini Nov. 15, 2013, 11:11 a.m. UTC | #1
Il 13/11/2013 15:06, Rainer Orth ha scritto:
> 
> This happens because there's no installed amd64 libgcc_s.so.1 on the
> system, and toplevel Makefile only sets LD_LIBRARY_PATH for the default
> multilib.  Initially, I thought that there were something special going
> on, but it turned out that other runtime libs containing C++ code don't
> have this problem, which can easily be cured by the following patch.  It
> allowed a C++-only i386-pc-solaris2.10 bootstrap to finish, make check
> currently running.  I'm currently also running an
> x86_64-unknown-linux-gnu bootstrap to make sure nothing breaks there.
> 
> Ok for mainline if those pass?

Yes.

> Btw., I noticed a couple of other anomalies:
> 
> * configure.ac has
> 
>   GCC_LIBSTDCXX_RAW_CXX_FLAGS
> 
>   but does nothing with the result: Makefile.in substitutes the results,
>   but that's it.  Also, toplevel Makefile.tpl should set raw_cxx=true it
>   this were useful, which it doesn't do as well.

Yes, looks like cut-and-paste.

Paolo

> * MAINTAINERS doesn't list a maintainer for libcilkrts.
> 
> * I believe there should be a libcilkrts bugzilla category, intead of
>   having to use other.
diff mbox

Patch

# HG changeset patch
# Parent 8810468d355365c1e486a34054abb823b17aad4b
Enable libcilkrts multilib build on Solaris

diff --git a/libcilkrts/configure.ac b/libcilkrts/configure.ac
--- a/libcilkrts/configure.ac
+++ b/libcilkrts/configure.ac
@@ -46,8 +46,8 @@  AM_MAINTAINER_MODE
 
 # Build a DLL on Windows
 # AC_LIBTOOL_WIN32_DLL
+AC_PROG_CC
 AC_PROG_CXX
-AC_PROG_CC
 # AC_PROG_LIBTOOL
 # AC_CONFIG_MACRO_DIR([..])
 AC_CONFIG_FILES([Makefile])