This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: issues building PPL 0.11.2


Yann --

On Sat, May 14, 2011 at 4:18 PM, Yann E. MORIN
<yann.morin.1998@anciens.enib.fr> wrote:
> Anthony, All,
>
> On Saturday 14 May 2011 21:03:41 Anthony Foiani wrote:
>> 1. a java test lib doesn't get a makefile rule if PPL is not built
>> shared.
>
> You mean, when building gcc, or when building ppl itself?
> If in gcc, then this is to be considered a bug in gcc.

Pretty sure this was when I was building PPL itself.

>> I first tried building shared, then eventually just build only
>> C and C++ interfaces.
>
> So, what does that mean? You need to both set static *and* specify the
> interfaces?

Static is already set by ct-ng; my first attempt at a fix was to
enable shared as well, but that didn't work.  So I switched back to
disable-shared and added the specification of interfaces to just C and
C++ so that Java is never involved.

(Although, if people are planning on having JNI PPL for their java
apps on their destination targets, this obviously is not the right way
to go.)

>
>> 2. PPL build was failing randomly, and it looked like it's not
>> entirely safe under parallel building; as such, I removed the parallel
>> build flag from the ppl.sh script.
>
> PPL takes very long to build... I never ever saw it fail here (building
> with 6-8 jobs).

Even with latest 0.11.2?

Takes 85s here single-threaded (granted, is a pretty stomping machine,
Core i7 930 @ 2.8GHz).

Reducing the number of interface languages might have made it faster, though.

> And the check takes ages to complete, even in parallel. For example, on my
> machine, building PPL takes roughly 1'40", while checking it takes 1h40'.
> And I never dared to test in no-parallel... :-/

I don't think I'm running the check.

> I'll have a look here with a lot of jobs ( hey I just got a hyperthreaded
> hexa core Core i7 just for this kind stuff! Let's put it into action! ;-) )

I do know that they had at least one bug with parallel builds, a while back.

This is another case of "what I changed fixed it for me"; I don't
think I'm up to the task of doing an actual analysis into the PPL
build mechanisms.  :(

>> I know that both of these issues should probably be pushed to upstream.
>
> Yes, please.

Indeed.  I'll see what I can do.

>> ÂÂÂÂÂÂÂÂ --with-libgmp-prefix="${CT_COMPLIBS_DIR}"ÂÂ \
>> ÂÂÂÂÂÂÂÂ --with-libgmpxx-prefix="${CT_COMPLIBS_DIR}" \
>> +ÂÂÂÂÂÂÂ --with-gmp-prefix="${CT_COMPLIBS_DIR}"ÂÂÂÂÂ \
>
> Did 0.11 changed the confgure options? --with-libgmp-prefix is here just
> to say where GMP has been installed.

Yes, they are now ignoring the --with-lib... versions.

I found this because ppl configure within the ct-ng build was finding
my system GMP headers (4.3.mumble, I think) but then finding the 5.0.1
libraries within the ct-ng build / stage area. This created a
header/library mismatch (which was erroneously reported as "can't find
GMP v4.1.3 or higher").

Their actual changelog for it is:

$ git log --grep=with-gmp-prefix
commit 08dfb6fea094f8c5a533575a3ea2095edce99a6d
Author: Roberto Bagnara <bagnara@cs.unipr.it>
Date:   Sun Jul 12 21:39:46 2009 +0200

    New configure option --with-gmp-prefix supersedes the (now removed)
    options --with-libgmp-prefix and --with-libgmpxx-prefix.

>
>> ÂÂÂÂÂÂÂÂ --enable-cxxÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ \
>> ÂÂÂÂÂÂÂÂ --enable-watchdogÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ \
>> ÂÂÂÂÂÂÂÂ --disable-debuggingÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ \
>> @@ -48,6 +49,7 @@
>> ÂÂÂÂÂÂÂÂ --disable-ppl_lcddÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ \
>> ÂÂÂÂÂÂÂÂ --disable-ppl_lpsolÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ \
>> ÂÂÂÂÂÂÂÂ --disable-sharedÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ \
>> +ÂÂÂÂÂÂÂ --enable-interfaces='c c++'ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ \
>
> What about the --enable-cxx, just above? Or is it just 0.11 changing this
> configure option as well?

Huh.  I think that "--enable-cxx" is a leftover from configuring GMP.

Yes, it looks like PPL doesn't have that option at all.  Doing a "git
grep" through the ppl source indicates that every instance of
"enable-cxx" is PPL telling you how to build GMP, not how to configure
PPL itself:

This can be verified with:  git grep -n -C 10 enable-cxx

Looks like ppl takes "--with-cxx" to indicate the C++ compiler, and
"--with-cxxflags" for flags to the compiler. It's written in C++ in
the first place, so it doesn't make too much sense to disable C++ for
PPL (unlike GMP, which is in C with an optional C++ wrapper SFAIK).

Best regards,
Tony

--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]