Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#450901: cmake class probably broken: CMAKE_C_COMPILER/CMAKE_CXX_COMPILER error

22 views
Skip to first unread message

Daniel Leidert

unread,
Nov 11, 2007, 8:10:07 PM11/11/07
to
Package: cdbs
Version: 0.4.50
Severity: important

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

When trying to use the vanilla cmake class, it sets:

- -DCMAKE_C_COMPILER="/usr/bin/cc" -DCMAKE_CXX_COMPILER="g++"

However, then it fails with:

CMake Error: your C compiler:
"/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/cc" was not found.
Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler:
"/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/g++" was not found.
Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

It seems, CMAKE_C_COMPILER and CMAKE_CXX_COMPILER should contain the
full path or /tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/cc should be
a symlink. Giving CC and CXX in debian/rules fixes the problem so the
package builds at least in CHROOT.

Regards, Daniel


- -- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (850, 'unstable'), (700, 'testing'), (550, 'stable'), (110, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.22-3-k7 (SMP w/1 CPU core)
Locale: LANG=de_DE, LC_CTYPE=de_DE (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages cdbs depends on:
ii debhelper 5.0.60 helper programs for debian/rules

Versions of packages cdbs recommends:
ii autotools-dev 20070725.1 Update infrastructure for config.{

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFHN6N8m0bx+wiPa4wRAiGiAJ4tkeD3aqrR6bxHnhqty/Z2NVL/TgCdGsuQ
i/JK+bWvvx1jO9ynVhQRv4c=
=0qbG
-----END PGP SIGNATURE-----

--
To UNSUBSCRIBE, email to debian-bugs-...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Peter Eisentraut

unread,
Nov 23, 2007, 10:10:10 AM11/23/07
to
Am Montag, 12. November 2007 schrieb Daniel Leidert:
> When trying to use the vanilla cmake class, it sets:
>
> -DCMAKE_C_COMPILER="/usr/bin/cc" -DCMAKE_CXX_COMPILER="g++"
>
> However, then it fails with:
>
> CMake Error: your C compiler:
> "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/cc" was not found.
> Please set CMAKE_C_COMPILER to a valid compiler path or name.
> CMake Error: your CXX compiler:
> "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/g++" was not found.
> Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

Could you provide a complete test case (package) for this? Or point me to a
package from the archive.

Daniel Leidert

unread,
Nov 23, 2007, 8:50:07 PM11/23/07
to
Am Freitag, den 23.11.2007, 15:35 +0100 schrieb Peter Eisentraut:
> Am Montag, 12. November 2007 schrieb Daniel Leidert:
> > When trying to use the vanilla cmake class, it sets:
> >
> > -DCMAKE_C_COMPILER="/usr/bin/cc" -DCMAKE_CXX_COMPILER="g++"
^^^^^^^^^^^ this is "cc":

So it looks like this:

-DCMAKE_C_COMPILER="cc" -DCMAKE_CXX_COMPILER="g++"

(sorry, a c&p mistake)

> > However, then it fails with:
> >
> > CMake Error: your C compiler:
> > "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/cc" was not found.
> > Please set CMAKE_C_COMPILER to a valid compiler path or name.
> > CMake Error: your CXX compiler:
> > "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/g++" was not found.
> > Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
>
> Could you provide a complete test case (package) for this? Or point me to a
> package from the archive.

The testcase is our avogadro package:

mkdir /tmp/test && cd /tmp/test
wget http://downloads.sourceforge.net/avogadro/avogadro-0.2.0.tar.gz
ln -s avogadro-0.2.0.tar.gz avogadro_0.2.0.orig.tar.gz
tar -xzf avogadro-0.2.0.tar.gz
cd avogadro-0.2.0
svn export svn://svn.debian.org/debichem/wnpp/avogadro/debian/

then edit debian/rules and comment/remove the CC and CXX declarations
(they are the workaround for this bug). Then simply run debuild or
whatever you like and you should see, what I see (reproducibly on my
normal system and in pbuilder chroots). I attached the build log to this
mail.

Regards, Daniel

avogadro_0.2.0-1_i386.build

Peter Eisentraut

unread,
Nov 27, 2007, 8:30:17 AM11/27/07
to
Am Samstag, 24. November 2007 schrieb Daniel Leidert:
> > > CMake Error: your C compiler:
> > > "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/cc" was not found.
> > > Please set CMAKE_C_COMPILER to a valid compiler path or name.
> > > CMake Error: your CXX compiler:
> > > "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/g++" was not found.
> > > Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

I think this is a bug internal to cmake or the tests it uses. Earlier in the
output it claims

-- Check for working C compiler: cc
-- Check for working C compiler: cc -- works
-- Check size of void*
-- Check size of void* - done
-- Check for working CXX compiler: g++
-- Check for working CXX compiler: g++ -- works

So it says the compilers work, and in order to check the size of void* it
would also have to actually run the compiler successfully.

Furthermore, it asks to set CMAKE_CXX_COMPILER to a valid compiler path or
*name*, which interpret such that a base name is sufficient.

So at the moment I believe that the behavior implemented in cdbs is correct
and the problem is somewhere else.

Ana Guerrero

unread,
Dec 15, 2007, 8:00:25 PM12/15/07
to
Hi Peter,

Looking to switch in the current kde4 packages from our cmake.mk class to the
cdbs's one I run into this problem as well.

On Tue, Nov 27, 2007 at 01:10:58PM +0100, Peter Eisentraut wrote:
> Am Samstag, 24. November 2007 schrieb Daniel Leidert:
> > > > CMake Error: your C compiler:
> > > > "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/cc" was not found.
> > > > Please set CMAKE_C_COMPILER to a valid compiler path or name.
> > > > CMake Error: your CXX compiler:
> > > > "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/g++" was not found.
> > > > Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
>
> I think this is a bug internal to cmake or the tests it uses. Earlier in the
> output it claims
>
> -- Check for working C compiler: cc
> -- Check for working C compiler: cc -- works
> -- Check size of void*
> -- Check size of void* - done
> -- Check for working CXX compiler: g++
> -- Check for working CXX compiler: g++ -- works
>
> So it says the compilers work, and in order to check the size of void* it
> would also have to actually run the compiler successfully.
>
> Furthermore, it asks to set CMAKE_CXX_COMPILER to a valid compiler path or
> *name*, which interpret such that a base name is sufficient.
>
> So at the moment I believe that the behavior implemented in cdbs is correct
> and the problem is somewhere else.


In my case:


usr/bin/make -f debian/rules update-config
make[1]: Entering directory `/tmp/buildd/kde4libs-3.97.0'
make[1]: Nothing to be done for `update-config'.
make[1]: Leaving directory `/tmp/buildd/kde4libs-3.97.0'
cd obj-i486-linux-gnu && cmake /tmp/buildd/kde4libs-3.97.0/.
-DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_C_COMPILER="cc"
-DCMAKE_CXX_COMPILER="g++" -DCMAKE_C_FLAGS="-g -Wall -O2"
-DCMAKE_CXX_FLAGS="-g -Wall -O2" -DCMAKE_SKIP_RPATH=ON
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=debugfull
-DKDE4_BUILD_TESTS=true -DKDE_DISTRIBUTION_TEXT="Debian packages"
-DCMAKE_SKIP_RPATH=true -DCONFIG_INSTALL_DIR=/etc/kde4
-DDATA_INSTALL_DIR=/usr/share/kde4/apps
-DHTML_INSTALL_DIR=/usr/share/doc/kde4/HTML
-DKCFG_INSTALL_DIR=/usr/share/kde4/config.kcfg -DLIB_INSTALL_DIR=/usr/lib
-DSYSCONF_INSTALL_DIR=/etc


-- Check for working C compiler: cc
-- Check for working C compiler: cc -- works
-- Check size of void*
-- Check size of void* - done
-- Check for working CXX compiler: g++
-- Check for working CXX compiler: g++ -- works


So it FTBFS.

just get current kde4libs from experimental, replace in debian/cdbs/kde.mk our
cmake.mk class for the cdbs's one and you can reproduce this problem.

Our cmake.mk does not use: -DCMAKE_C_COMPILER or -DCMAKE_CXX_COMPILER. is it
really necessary?

Ana

Ana Guerrero

unread,
Dec 15, 2007, 8:50:10 PM12/15/07
to
On Sun, Dec 16, 2007 at 01:28:36AM +0100, Ana Guerrero wrote:
> Our cmake.mk does not use: -DCMAKE_C_COMPILER or -DCMAKE_CXX_COMPILER. is it
> really necessary?
>
For what i have seen these parameters seem not to be necessary since they are
the first thing that is searched for cmake. If you set this parameters, cmake
still makes the search, but uses the paramateres given.

Jiri Palecek

unread,
Jan 4, 2008, 11:40:20 AM1/4/08
to
On Tuesday 27 November 2007 13:10:58 Peter Eisentraut wrote:
> Am Samstag, 24. November 2007 schrieb Daniel Leidert:
> > > > CMake Error: your C compiler:
> > > > "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/cc" was not found.
> > > > Please set CMAKE_C_COMPILER to a valid compiler path or name.
> > > > CMake Error: your CXX compiler:
> > > > "/tmp/buildd/avogadro-0.2.0/obj-i486-linux-gnu/g++" was not found.
> > > > Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
>
> I think this is a bug internal to cmake or the tests it uses. Earlier in
> the output it claims
>
> -- Check for working C compiler: cc
> -- Check for working C compiler: cc -- works
> -- Check size of void*
> -- Check size of void* - done
> -- Check for working CXX compiler: g++
> -- Check for working CXX compiler: g++ -- works
>
> So it says the compilers work, and in order to check the size of void* it
> would also have to actually run the compiler successfully.
>
> Furthermore, it asks to set CMAKE_CXX_COMPILER to a valid compiler path or
> *name*, which interpret such that a base name is sufficient.
>
> So at the moment I believe that the behavior implemented in cdbs is correct
> and the problem is somewhere else.

Hello,

I have filed a bug report against cmake about this, see bug #459207. For now,
you can work around this bug by setting -DCMAKE_CXX_COMPILER:STRING=g++
or -DCMAKE_CXX_COMPILER:FILEPATH=g++.

Regards
Jiei Palecek

0 new messages