Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 231655 - cmake incorrectly reports Qt installation error when building on a noexec filesystem
Summary: cmake incorrectly reports Qt installation error when building on a noexec fil...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: High normal
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-13 01:26 UTC by Ivan D Vasin
Modified: 2009-08-02 19:02 UTC (History)
0 users

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 Ivan D Vasin 2008-07-13 01:26:46 UTC
While trying to build the Hello World tutorial for KDE4 I kept getting the following error from cmake:

-- Performing Test __KDE_HAVE_GCC_VISIBILITY
-- Performing Test __KDE_HAVE_GCC_VISIBILITY - Success
CMake Error: Qt compiled without support for -fvisibility=hidden. This will break plugins and linking of some applications. Please fix your Qt installation.

I already have -fvisibility=hidden in my CXXFLAGS, and I tried rebuilding Qt with the -reduce-exports configure flag, as suggested here http://www.kde-forum.org/artikel/18186/kde4-build-problems-with-qt4.html. It didn't help. I tried building the program manually with g++, which worked fine, but for some reason I got a "Couldn't exec helloworld: Permission denied" error when trying to run it, even though I have rwx permissions on the whole (NTFS) filesystem. I copied the project to a different filesystem, and both the executable and cmake worked.

I then checked my mount flags and discovered that the NTFS filesystem was mounted with the noexec flag, even though I never specified it--apparently it was implied by the users flag. I added the exec flag, and the original project worked fine.

The main issue here is that cmake was dead wrong about reporting the problem. The other issue (why "noexec" is implied by "users") may be due to my ignorance.

Reproducible: Always

Steps to Reproduce:
1. create a KDE4 project on a filesystem mounted with noexec
2. cmake the project

Actual Results:  
CMake Error: Qt compiled without support for -fvisibility=hidden. This will break plugins and linking of some applications. Please fix your Qt installation.

Expected Results:  
I would expect something along the lines of
CMake Error: This filesystem is mounted with the noexec flag. Cannot build without exec permissions.

Portage 2.2_rc1 (default-linux/x86/2006.1, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.26-rc8-zen1.0 i686)                                                                           
=================================================================                       
System uname: Linux-2.6.26-rc8-zen1.0-i686-Intel-R-_Pentium-R-_M_processor_1.86GHz-with-glibc2.0                                                                                
Timestamp of tree: Sat, 12 Jul 2008 18:15:01 +0000                                      
ccache version 2.4 [enabled]                                                            
app-shells/bash:     3.2_p39                                                            
dev-java/java-config: 1.3.7, 2.1.6-r1                                                   
dev-lang/python:     2.5.2-r5                                                           
dev-python/pycrypto: 2.0.1-r6                                                           
dev-util/ccache:     2.4-r7                                                             
sys-apps/baselayout: 2.0.0                                                              
sys-apps/openrc:     0.2.5-r1                                                           
sys-apps/sandbox:    1.2.18.1-r3                                                        
sys-devel/autoconf:  2.13, 2.62-r1                                                      
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1        
sys-devel/binutils:  2.18-r3                                                            
sys-devel/gcc-config: 1.4.0-r4                                                          
sys-devel/libtool:   2.2.4                                                              
virtual/os-headers:  2.6.25-r4                                                          
ACCEPT_KEYWORDS="x86 ~x86"                                                              
CBUILD="i686-pc-linux-gnu"                                                              
CFLAGS="-march=pentium4m -O2 -pipe -fomit-frame-pointer"                                
CHOST="i686-pc-linux-gnu"                                                               
CONFIG_PROTECT="/etc /opt/openjms/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.1/env /usr/kde/4.1/share/config /usr/kde/4.1/shutdown /usr/kde/svn/env /usr/kde/svn/share/config /usr/kde/svn/shutdown /usr/share/config /var/bind /var/qmail/alias /var/qmail/control"                                                    
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"                                                 
CXXFLAGS="-march=pentium4m -O2 -pipe -fomit-frame-pointer -fvisibility-inlines-hidden -fvisibility=hidden"                                                                      
DISTDIR="/usr/portage/distfiles"                                                        
EMERGE_DEFAULT_OPTS=""                                                                  
FEATURES="ccache distlocks parallel-fetch preserve-libs sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"                                                  
GENTOO_MIRRORS="ftp://gentoo.wpi.edu/gentoo  ftp://ftp.gtlib.gatech.edu/pub/gentoo  http://distfiles.gentoo.org"                                                                
INSTALL_MASK=""                                                                         
LANG="en_US.UTF-8"                                                                      
LC_ALL="en_US.UTF-8"                                                                    
LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"                           
LINGUAS="en en_US"                                                                      
MAKEOPTS="-j2"                                                                          
PKGDIR="/usr/portage/packages"                                                          
PORTAGE_RSYNC_EXTRA_OPTS=""                                                             
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"                                                                          
PORTAGE_TMPDIR="/var/tmp"                                                               
PORTDIR="/usr/portage"                                                                  
PORTDIR_OVERLAY="/usr/local/portage/layman/zen-overlay /usr/local/portage/layman/sabayon /usr/local/portage/layman/enlightenment /usr/local/portage/layman/kdesvn-portage /usr/local/portage"                                                                           
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"                                 
USE="7zip X Xaw3d a52 aac aalib acpi administrator aim akode alias alsa amarok amazon amr animgif ansi ao apache2 apm applet artswrappersuid aspnet2 async asyncns athena audacious audiofile autoipd automount avahi avalon-framework avalon-logkit backtrace bash-completion bcmath bdf berkdb bidi big-tables binfilter bittorrent blas blender-game bluetooth boost branding bzip2 cairo calendar caps captury cardbus cblas cdaudio cdda cddb cdinstall cdio cdparanoia cdr chm chroot clamav clearcase cli clisp colordiff connectionstatus console contentcache corba cpudetection cpufreq cracklib crypt cscope css ctype cups cupsddk curl curlwrappers cursors cviewer cvs cvsgraph daap dbus device-mapper devil dia directfb disassembler disk-partition divx djbfft djvu dnd dri dts dvd dvdr dvdread dynamicplugin eap-tls ecc emacs emerald emovix enca encode enscript eolconv epydoc equalizer erandom exif expat extra-cardsets extraengine fam fame fastbuild fasttrack fat fbcon fbcondecor fbsplash ffmpeg fftw finger firefox fits flac flash flatfile flexresp2 fltk fontconfig foomaticdb fortran fpx freetype ftp fuse g15 gd gdbm gif gimpprint git glade glib glibc-omitfp glitz glut gmedia gmp gnutella gnutls gpgme gphoto2 gpm graphviz gs gsm gstreamer gtk gtkhtml hal hash haskell hddtemp hdri highlight history hou howl-compat hpnhtmlhandbook http httpd icons iconv icq icu id3 id3tag idn ieee1394 image imagemagick inifile inkjar inline innodb inode inotify ipod ipv6 isdnlog ithreads j2me jabber java java-internal java5 javascript jbig jce jikes jingle jms jmx joystick jpeg jpeg2k kcal kdekde4 kdeenablefinal kdehiddenvisibility kdm kerberos kig-scripting kqemu lame lapack latex lcms ldap ldap-sasl libcaca libffi libgcrypt libnotify libsamplerate libsexy libssh2libtommath libvisual libwww live lm_sensors logitech-mouse lzo mad magic maps math matroska md5sum mdnsresponder-compat mhash midi mikmod mime ming mjpeg mmap mmx mmxext mng modplug mono moonlight motif mozdom mozembed moznopango mp2 mp3 mp4 mp4live mpeg mpeg2 mpi mplayer mtp mudflap multiuser musepack music musicbrainz mysql mysqli ncurses nepomuk net netboot netjack network network-cron networkmanager new-clx nfs nis nls nntp no-helper nocd normalize nova nowin nowlistening nptl nptlonly nsplugin ntfs numeric nvidia offensive ogg openal openexr opengl openmp openssl opensslcrypt oscar pam pango pccts pch pcmcia pcntl pcre pdf perfprofiling perl perlsuid php physfs plasma plib plotutils plugins pmu png pnm pop posix postproc postscript ppds pppd prediction prelude psyco pulseaudio pyste python qt-copy qt-static qt3 qt3support qt4 query-browser quicktime rar rdesktopreact readline real realmedia reflection reiser4 reiserfs remix replaygain replytolist rtc rtsp samba sasl scenarios sdl sdl-image semantic-desktop sensord server session shorten simplexml skins slang slp smime sms smtp sndfile snmp snortsam soap sockets socks5 sou sound soundex sounds sox speex spell spl sql sqlite sqlite3 srp srt sse sse2 ssl startup-notification statistics stream subversion suhosin suid svg svga svgz swat swig syslog sysvipc szip taglib tagwriting tcl tcpd tetex texteffect textures tga themes theora threads thunderbird tidy tiff timestats tk tokenizer tomsfastmath toolbar toolkit-scroll-bars tordns translator trayicon truetype tunepimp twolame unicode upnp usb userlocales userpriv vcd vcdx vhosts videos vim vim-pager vim-syntax vim-with-x visualization vlm vnc vncviewer voice vorbis vorbis-psy vpopmail wavpack webdav webpresence wifi win32codecs winbind wireshark wma wmf wmp wordexp workbench wxwindows x264 x86 xanim xattr xcb xcomposite xemacs xface xfce xforms xft xine xinerama xinetd xml xmldoclet xmlreader xmlrpc xmlwriter xorg xosd xpm xrender xscreensaver xsl xulrunner xv xvid xvmc xvnc yv12 zip zlibzoran" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoopempty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plugrate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancerproxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrackvhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse synaptics joystick" KERNEL="linux" LCD_DEVICES="g15 ncurses text xosd" LINGUAS="en en_US" USERLAND="GNU" VIDEO_CARDS="nvidia nv"
Unset:  CPPFLAGS, CTARGET, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
Comment 1 Tomáš Chvátal (RETIRED) gentoo-dev 2009-02-03 21:36:08 UTC
Well there is not much the downstream (read as us, gentoo devs) can do, you should poke upstream and ask them to add some detection for where the cmake is run.
Comment 2 Marcus D. Hanwell (RETIRED) gentoo-dev 2009-08-02 19:02:31 UTC
I do not think that this is something that Gentoo should fix. Most build systems will test for certain features by building a small executable, running it and seeing it it works. You could report the bug upstream, but I think most build systems make the general assumption that they can execute code in the build directory.