Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 466054 - =sys-devel/gettext-0.18.2 even with epunt_cxx requires C++ compiler (fails at compile phase instead of configure phase)
Summary: =sys-devel/gettext-0.18.2 even with epunt_cxx requires C++ compiler (fails at...
Status: RESOLVED DUPLICATE of bug 448752
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-04-16 04:45 UTC by Michael Mol
Modified: 2015-07-10 07:47 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Mol 2013-04-16 04:45:18 UTC
When emerging =sys-devel/gettext-0.18.2 without a C++ compiler installed on the system, the build fails at the compile (not configure!) stage with:

i686-pc-linux-gnu-gcc: error: autosprintf.cc: C++ compiler not installed on this system

The ebuild should express a build dependency on a version of gcc with the 'cxx' flag enabled, to ensure the presence of a C++ compiler. (Unless we have some other supported mechanism for providing C++ compilers I don't know about.)
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2013-04-16 05:08:57 UTC
See, http://bugs.gentoo.org/show_bug.cgi?id=460792

As in, sys-devel/gettext has line `epunt_cxx` in src_prepare() function:

$ grep epunt_cxx /usr/portage/sys-devel/gettext/gettext-0.18.2.ebuild 
epunt_cxx

That will apply this patch:

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/eclass/ELT-patches/nocxx/

The patch should remove the check for C++ compiler, which is why you are propably seeing it now fail at compile phase instead of configure phase

Can you try older version, like gettext-0.18.1.1-r3? Same problem there?

Also, you need to include complete build.log here along with output of `emerge --info`
Comment 2 Michael Mol 2013-04-16 05:12:50 UTC
Not trivially; that system is now moving onward in its install phase to building a C++-enabled gcc. I've got a handful of other VMs I plan to construct on the same path; I'll try walking back versions then. Sleep time, now.
Comment 3 Roman Žilka 2013-04-16 09:07:24 UTC
> The ebuild should express a build dependency on a version of gcc with the
> 'cxx' flag enabled, to ensure the presence of a C++ compiler. (Unless we
> have some other supported mechanism for providing C++ compilers I don't know
> about.)

I think gcc should be built with c++ support mandatorily (no "cxx" USE flag at all). There's no life in Gentoo without c++. With the cxx USE there and optional someone might try switching it off and destroying their system; gcc cannot be recompiled then either. All the essential compilers/interpreters are mandatory no matter how USE is set, except for c++.
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2013-04-16 09:10:59 UTC
(In reply to comment #3)
> > The ebuild should express a build dependency on a version of gcc with the
> > 'cxx' flag enabled, to ensure the presence of a C++ compiler. (Unless we
> > have some other supported mechanism for providing C++ compilers I don't know
> > about.)
> 
> I think gcc should be built with c++ support mandatorily (no "cxx" USE flag
> at all). There's no life in Gentoo without c++. With the cxx USE there and
> optional someone might try switching it off and destroying their system; gcc
> cannot be recompiled then either. All the essential compilers/interpreters
> are mandatory no matter how USE is set, except for c++.

untrue, you can build an embedded system with C compiler only and there is no need to kill that possibility for users
however it's true USE="-cxx" is something that is not widely tested and disabling it on already built system is... well, stupid
Comment 5 Rafał Mużyło 2013-04-16 12:45:13 UTC
(In reply to comment #4)
> > 
> 
> untrue, you can build an embedded system with C compiler only and there is
> no need to kill that possibility for users

In a year or so, it might be a bit more true - while gcc 4.8 might not need to install g++, it will build it during bootstrap to build itself.
Comment 6 Michael Mol 2013-04-16 13:14:31 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > > 
> > 
> > untrue, you can build an embedded system with C compiler only and there is
> > no need to kill that possibility for users
> 
> In a year or so, it might be a bit more true - while gcc 4.8 might not need
> to install g++, it will build it during bootstrap to build itself.

As I understand it, a C++ compiler will be required to build g++, which will then be used to build all of gcc.[1] So >=gcc-4.8 will need gcc[cxx] as a bdep as well.

[1] Not as weird as it sounds; a C compiler is required to build gcc, which is in turn used to build...gcc. Which then gets installed. That's the *current* state of things. gcc 4.8's build process simply uses C++ instead of C.
Comment 7 Michael Mol 2013-04-16 13:16:53 UTC
(In reply to comment #3)
> > The ebuild should express a build dependency on a version of gcc with the
> > 'cxx' flag enabled, to ensure the presence of a C++ compiler. (Unless we
> > have some other supported mechanism for providing C++ compilers I don't know
> > about.)
> 
> I think gcc should be built with c++ support mandatorily (no "cxx" USE flag
> at all). There's no life in Gentoo without c++. With the cxx USE there and
> optional someone might try switching it off and destroying their system; gcc
> cannot be recompiled then either. All the essential compilers/interpreters
> are mandatory no matter how USE is set, except for c++.

This probably belongs in a discussion on gentoo-dev or on whichever mailing list handles core system.
Comment 8 SpanKY gentoo-dev 2013-04-18 16:57:12 UTC
as noted in Bug 466056, there are no plans to track this in DEPENDs

if gettext-0.18.2 can be built w/out C++, let's make it work.  otherwise, drop the epunt_cxx and close this bug.
Comment 9 SpanKY gentoo-dev 2015-07-10 07:47:02 UTC

*** This bug has been marked as a duplicate of bug 448752 ***