[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Txr-users] installing
From: |
Kaz Kylheku |
Subject: |
Re: [Txr-users] installing |
Date: |
Sat, 07 Apr 2012 13:35:05 -0700 |
User-agent: |
Roundcube Webmail/0.4 |
On Sat, 7 Apr 2012 14:14:34 +0100, Tristan Williams
<address@hidden> wrote:
> This is what I did.
>
> 0. Run ./configure as is from the txr-64 directory.
> 1. make clean
> 2. cd mpi-1.8.6 and then make
> 3. cd ..
> 4. edit config.make so that ccname = g++
> 5. save config.make
> 6. make
> 7. make tests
Do you see the same name clash problems if you don't have ccname
set to g++? If so, what a mess ... The choice of dialect shouldn't
have any impact on whether you see "random" in <unistd.h>.
Maybe the headers have some tests for __cplusplus and are more
rigorous. (Because C++ programs use lots of short names and
namespaces?)
(Good thing I maintain C++ compilation! Sometimes I forget to switch
compilers and check, but before Version 64, I built both ways.)
> Mine then passed the tests.
>
> Sadly, ./configure --cname=g++ didn't work for me as the mpi lib then
> started to complain about not supporting long long.
By the way, I not recommend doing make under "mpi-1.8.6"! Eek!
Is that a necessary step in the above workaround
recipe?
Luckily, if you do this, and the "mpi-types.h" has already been
generated by the configure script, the compilation of mpi.c
will pick up that header, so that it should be working
with the right types for mpi_digit and so on.
But if you do a make inside mpi-1.8.6, it compiles using the C
compiler; if you then switch to g++ for the rest of
TXR program, how does that even link? There are
no extern "C" declarations in the MPI code, so C++ declarations
are being used to reach C definitions.
MPI doesn't refer to long long anywhere except through the
mpi-types.h header that ./configure generates and that script
tests whether a small program that uses long long will compile.
Can you post the contents of your "config.h" and
"mpi-1.8.6/mpi-types.h"
after doing a clean configure, with and without ccname=g++?
The output of configure wouldn't hurt, either.
Use "make distclean" to blow away everything to do a clean reconfigure.
That also gets rid of the mpi-1.8.6 directory so that it is unpacked
afresh and the patches re-applied.
Cheers ...