From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5239541021951316135==" MIME-Version: 1.0 From: Petr Machata To: elfutils-devel@lists.fedorahosted.org Subject: Re: [PATCH 1/2] Enable C++ Date: Fri, 03 Apr 2015 23:40:58 +0200 Message-ID: <87wq1sevpx.fsf@redhat.com> In-Reply-To: 1428060790.10607.203.camel@bordewijk.wildebeest.org --===============5239541021951316135== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Mark Wielaard writes: > On Fri, 2015-04-03 at 10:28 +0200, Petr Machata wrote: >> - Detect C++ compiler in configure, add supporting infrastructure to >> eu.am. > > Looks good. Two questions below, but not blockers. Just curious. > >> index faf8add..f1d290b 100644 >> --- a/config/eu.am >> +++ b/config/eu.am >> [...] >> %.os: %.c %.o >> if AMDEP >> + test -d $(DEPDIR)/$(*D) || mkdir $(DEPDIR)/$(*D) >> if $(COMPILE.os) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \ >> -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \ >> then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \ > > Why is that mkdir now necessary? It's not, but I thought it's a good idea for symmetry. The reason the c++ bits need this mkdir is that we keep that code in a sub-directory, and this creates the corresponding sub-directory for the dependency tracking helper files. >> +AC_CACHE_CHECK([for working C++ compiler], ac_cv_cxx_works, >> +[AC_LANG_PUSH([C++]) >> + AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl >> +struct foo { >> + int i; >> + explicit foo () : i (0) {} >> + virtual ~foo () {} >> +};])], ac_cv_cxx_works=3Dyes, ac_cv_cxx_works=3Dno) >> + AC_LANG_POP()]) >> +AM_CONDITIONAL(HAVE_CXX, test "$ac_cv_cxx_works" =3D yes) > > We require gnu++98 above. > Is the explicit enough to make sure the compiler supports C++98? Well, this is a C++98 code. It's of course not enough to test the whole C++98--the language is vast. The reason for that test is that I want to make sure we really do have a C++ compiler. AC_PROG_CXX happily exports CXX even if none is available, so we can't use that in conditionals. Thanks, Petr --===============5239541021951316135==--