+++ This bug was initially created as a clone of Bug #53872 +++ Trying to emerge scilab without an Fortran compiler installed results in an ERROR. This seems to be still a problem with version 4.1.2-r1 It does not depend on an fortran compiler. See configure output of pulled in blas-reference ebuild: >>> Emerging (9 of 15) sci-libs/blas-reference-20070226 * lapack-lite-3.1.1.tgz RMD160 SHA1 SHA256 size ;-) ... [ ok ] * Package: sci-libs/blas-reference-20070226 * Repository: gentoo * Maintainer: sci@gentoo.org * USE: amd64 elibc_glibc kernel_linux multilib userland_GNU >>> Unpacking source... >>> Unpacking lapack-lite-3.1.1.tgz to /var/tmp/portage/sci-libs/blas-reference-20070226/work * Applying blas-reference-20070226-autotool.patch ... [ ok ] * Running eautoreconf in '/var/tmp/portage/sci-libs/blas-reference-20070226/work/lapack-lite-3.1.1' ... * Running aclocal ... [ ok ] * Running libtoolize --copy --force --install --automake ... [ ok ] * Running aclocal ... [ ok ] * Running autoconf ... [ ok ] * Running automake --add-missing --copy --foreign ... [ ok ] * Running elibtoolize in: lapack-lite-3.1.1/ * Applying portage-2.2.patch ... * Applying sed-1.5.6.patch ... * Applying as-needed-2.2.6.patch ... >>> Source unpacked in /var/tmp/portage/sci-libs/blas-reference-20070226/work >>> Compiling source in /var/tmp/portage/sci-libs/blas-reference-20070226/work/lapack-lite-3.1.1 ... * econf: updating lapack-lite-3.1.1/config.sub with /usr/share/gnuconfig/config.sub * econf: updating lapack-lite-3.1.1/config.guess with /usr/share/gnuconfig/config.guess ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64/blas/reference configure: loading site script /usr/share/config.site configure: loading site script /usr/share/crossdev/include/site/linux checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for x86_64-pc-linux-gnu-g77... no checking for x86_64-pc-linux-gnu-xlf... no checking for x86_64-pc-linux-gnu-f77... no checking for x86_64-pc-linux-gnu-frt... no checking for x86_64-pc-linux-gnu-pgf77... no checking for x86_64-pc-linux-gnu-cf77... no checking for x86_64-pc-linux-gnu-fort77... no checking for x86_64-pc-linux-gnu-fl32... no checking for x86_64-pc-linux-gnu-af77... no checking for x86_64-pc-linux-gnu-xlf90... no checking for x86_64-pc-linux-gnu-f90... no checking for x86_64-pc-linux-gnu-pgf90... no checking for x86_64-pc-linux-gnu-pghpf... no checking for x86_64-pc-linux-gnu-epcf90... no checking for x86_64-pc-linux-gnu-gfortran... no checking for x86_64-pc-linux-gnu-g95... no checking for x86_64-pc-linux-gnu-xlf95... no checking for x86_64-pc-linux-gnu-f95... no checking for x86_64-pc-linux-gnu-fort... no checking for x86_64-pc-linux-gnu-ifort... no checking for x86_64-pc-linux-gnu-ifc... no checking for x86_64-pc-linux-gnu-efc... no checking for x86_64-pc-linux-gnu-pgf95... no checking for x86_64-pc-linux-gnu-lf95... no checking for x86_64-pc-linux-gnu-ftn... no checking for g77... no checking for xlf... no checking for f77... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for xlf90... no checking for f90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for xlf95... no checking for f95... no checking for fort... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether the Fortran 77 compiler works... no configure: error: in `/var/tmp/portage/sci-libs/blas-reference-20070226/work/lapack-lite-3.1.1': configure: error: Fortran 77 compiler cannot create executables See `config.log' for more details. !!! Please attach the following file when seeking support: !!! /var/tmp/portage/sci-libs/blas-reference-20070226/work/lapack-lite-3.1.1/config.log * ERROR: sci-libs/blas-reference-20070226 failed: * econf failed * * Call stack: * ebuild.sh, line 56: Called src_compile * environment, line 3230: Called econf '--libdir=/usr/lib64/blas/reference' * ebuild.sh, line 552: Called die * The specific snippet of code: * die "econf failed" * * If you need support, post the output of 'emerge --info =sci-libs/blas-reference-20070226', * the complete build log and the output of 'emerge -pqv =sci-libs/blas-reference-20070226'. * The complete build log is located at '/var/tmp/portage/sci-libs/blas-reference-20070226/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sci-libs/blas-reference-20070226/temp/environment'. * S: '/var/tmp/portage/sci-libs/blas-reference-20070226/work/lapack-lite-3.1.1' >>> Failed to emerge sci-libs/blas-reference-20070226, Log file: >>> '/var/tmp/portage/sci-libs/blas-reference-20070226/temp/build.log'
Currently this is won't fix, because of two reasons: 1. USE=fortran is part of the default linux profile, so you actively disabled the support. This means "You know what you are doing". 2. There is currently no good way to depend on a working fortran compiler. We could depend on || ( sys-devel/gcc[gfortran] dev-lang/ifc ), but this only ensures a compiler to be installed, but you still could set FC="funny-fortran" which would result in the same error like it is now. So please leave the default USE as they are, as long you do not know what happens if they are changed.
I did not change any fortran USE flag in my profile. Here's my USE from make.conf But, i'm using a hardened profile on AMD64 Look in my emerge --info: Portage 2.1.9.25 (hardened/linux/amd64, gcc-4.4.4, glibc-2.11.2-r3, 2.6.36-gentoo-r5 x86_64) ================================================================= System uname: Linux-2.6.36-gentoo-r5-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_6000+-with-gentoo-1.12.14 Timestamp of tree: Tue, 25 Jan 2011 11:30:01 +0000 app-shells/bash: 4.1_p7 dev-java/java-config: 2.1.11-r1 dev-lang/python: 2.4.4-r6, 2.5.4-r2, 2.6.6-r1, 3.1.2-r4 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 1.12.14-r1 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.13, 2.65-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 3.4.6-r2, 4.3.2-r3, 4.4.4-r2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.10 sys-devel/make: 3.81-r2 virtual/os-headers: 2.6.30-r1 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -O2 -pipe -msse3 -fforce-addr" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/openvpn/easy-rsa /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=k8 -O2 -pipe -msse3 -fforce-addr" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo" LANG="de_DE.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="de" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" 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" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aac aalib acl acpi adns alsa amd64 amr apache2 ares automount bash-completion berkdb bluetooth bzip2 cairo calendar cdda cddax cddb cdio cdr cgi cli consolekit cracklib crypt cups curl cvs cxx dbus device-mapper disk-partition dri dvd dvdr encode esd exif extensions extras faac faad ffmpeg filter flac fontconfig ftp fuse gcrypt gd gdbm gdu gedit geoip gnome gnutls gpm gsm gstreamer gtk hal hardened hash iconv id3tag imagemagick java jpeg json justify kerberos libcaca libsysfs libv4l2 live lua lzma lzo melt mhash mmap mmx modules mono mp3 mpeg mudflap multilib mysql nautilus ncurses network nls nptl nptlonly nsplugin ogg opengl openmp optimisememory pam pcntl pcre perl pic png policykit posix pppd python qt qt3 readline remote rtsp run-as-root samba sasl sdl session sharedmem smi sndfile snmp sockets speex sqlite sse sse2 sse3 ssl ssse3 subversion suhosin svg sysfs sysvipc tcpd theora threads tiff tk truetype twolame unicode urandom usb v4l v4l2 vcd vcdinfo vim-syntax vorbis wmf x264 xml xorg xosd xpm xvid zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nv" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
I had to enable USE="fortran" explicit when reemerging gcc-4.4.4 Even equery tells, that fortran is not enabled by default for gcc-4.4.4: [ Searching for packages matching sys-devel/gcc-4.4.4-r2... ] [ Colour Code : set unset ] [ Legend : Left column (U) - USE flags from make.conf ] [ : Right column (I) - USE flags packages was installed with ] [ Found these USE variables for sys-devel/gcc-4.4.4-r2 ] U I - - altivec : Adds support for optimizations for G4 and G5/ppc970 processors - - bootstrap : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used during original system bootstrapping [make stage2] - - build : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping [make stage1] - - doc : Adds extra documentation (API, Javadoc, etc) - - fixed-point : Enable fixed-point arithmetic support for MIPS targets in gcc (Warning: significantly increases compile time!) - + fortran : Adds support for fortran (formerly f77) - - gcj : Enable building with gcj (The GNU Compiler for the Javatm Programming Language) - - graphite : Add support for the framework for loop optimizations based on a polyhedral intermediate representation + + gtk : Adds support for x11-libs/gtk+ (The GIMP Toolkit) + + hardened : activate default security enhancements for toolchain (gcc, glibc, binutils) - - libffi : Build the portable foreign function interface library + + mudflap : Add support for mudflap, a pointer use checking library + + multilib : On 64bit systems, if you want to be able to compile 32bit and 64bit binaries - - multislot : Allow for SLOTs to include minor version (3.3.4 instead of just 3.3) - - n32 : Enable n32 ABI support on mips - - n64 : Enable n64 ABI support on mips + + nls : Adds Native Language Support (using gettext - GNU locale utilities) - - nocxx : Disable support for C++ (DON'T USE THIS UNLESS YOU KNOW WHAT YOU'RE DOING) - - nopie : Disable PIE support (NOT FOR GENERAL USE) - - nossp : Disable SSP support (NOT FOR GENERAL USE) + + nptl : Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually) - - objc : Build support for the Objective C code language - - objc++ : Build support for the Objective C++ language - - objc-gc : Build support for the Objective C code language Garbage Collector + + openmp : Build support for the OpenMP (support parallel computing), requires >=sys-devel/gcc-4.2 built with USE="openmp" - - test : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore - - vanilla : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically Even a quick grep over the ebuilds in /usr/portage/sys-devel/gcc tells me that the fortran USE (or its better to say IUSE in ebuilds) was last used in gcc-2.95.3-r9 So it seems like that fortran not part of the default USE flags for gcc. To keep it short: I just enabled USE="fortran" when re-emerging gcc and blas-reference compiled fine.
You are right, so hardened does not have it enabled by default. But the second argument is valid, and we are sorry, but so far there is no solution. Please consult the gentoo-science ml and the last meeting log for more details on that topic.
*** Bug 353975 has been marked as a duplicate of this bug. ***
*** Bug 355607 has been marked as a duplicate of this bug. ***
(In reply to comment #1) > Currently this is won't fix, because of two reasons: > > 1. USE=fortran is part of the default linux profile, so you actively disabled > the support. This means "You know what you are doing". > 2. There is currently no good way to depend on a working fortran compiler. We > could depend on || ( sys-devel/gcc[gfortran] dev-lang/ifc ), but this only > ensures a compiler to be installed, but you still could set FC="funny-fortran" > which would result in the same error like it is now. > > So please leave the default USE as they are, as long you do not know what > happens if they are changed. That's one of the dumbest reasons I've seen. Your not going to fix just because user could set some env variable to a wrong value. That's just stupid. You could say that about any package.
(In reply to comment #7) > (In reply to comment #1) > > Currently this is won't fix, because of two reasons: > > > > 1. USE=fortran is part of the default linux profile, so you actively disabled > > the support. This means "You know what you are doing". > > 2. There is currently no good way to depend on a working fortran compiler. We > > could depend on || ( sys-devel/gcc[gfortran] dev-lang/ifc ), but this only > > ensures a compiler to be installed, but you still could set FC="funny-fortran" > > which would result in the same error like it is now. > > > > So please leave the default USE as they are, as long you do not know what > > happens if they are changed. > > That's one of the dumbest reasons I've seen. Your not going to fix just because > user could set some env variable to a wrong value. That's just stupid. You > could say that about any package. Tell us how to fix it.
Reopen to dupe
*** This bug has been marked as a duplicate of bug 361591 ***
(In reply to comment #8) > (In reply to comment #7) > > (In reply to comment #1) > > > Currently this is won't fix, because of two reasons: > > > > > > 1. USE=fortran is part of the default linux profile, so you actively disabled > > > the support. This means "You know what you are doing". > > > 2. There is currently no good way to depend on a working fortran compiler. We > > > could depend on || ( sys-devel/gcc[gfortran] dev-lang/ifc ), but this only > > > ensures a compiler to be installed, but you still could set FC="funny-fortran" > > > which would result in the same error like it is now. > > > > > > So please leave the default USE as they are, as long you do not know what > > > happens if they are changed. > > > > That's one of the dumbest reasons I've seen. Your not going to fix just because > > user could set some env variable to a wrong value. That's just stupid. You > > could say that about any package. > > Tell us how to fix it. first, i'd like to apologized for the way i wrote that. Bad day/ bad mood. While i know fortran has some unique issues i think this could still probably be solved though the use of a virtual as opposed to just having every system install a fortran compiler by enabling fortran flag. Most systems will never use it anyway.
You are right. I added the virtual some hours ago to the tree. What I don't like is that someone who wants to use a compiler not in the tree is forced to have either gfortran or ifort around. But what I forgot was the possibility of using /etc/portage/profile/package.provide to override this need. Only problem to solve, if we depend on || ( gcc[fortran] ifc ), and someone not experienced emerges ifc but doesn't set FC/F77 accordingly is in a broken situation. But we will have a good fix soon. Probably it will take ages to catch every package lacking the virtual in depend, but that can be fixed easily.