Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 349526 - app-portage/eix-0.20.5 - /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/bits/stl_pair.h:90: error: invalid conversion from 'int' to 'Category*'
Summary: app-portage/eix-0.20.5 - /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: ARM Linux
: High normal (vote)
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-23 19:27 UTC by Marc Richter
Modified: 2010-12-26 12:28 UTC (History)
1 user (show)

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


Attachments
This is the build.log (build.log,10.14 KB, text/plain)
2010-12-23 19:30 UTC, Marc Richter
Details
This is the output from `emerge --info` (emerge_info.txt,4.12 KB, text/plain)
2010-12-23 20:10 UTC, Marc Richter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marc Richter 2010-12-23 19:27:00 UTC
Issuing "emerge app-portage/eix" fails like displayed in the attached build.log.

The main part from out of this may be:

  CXX    portage/packagetree.o
In file included from /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/bits/stl_algobase.h:66,
                 from /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/list:61,
                 from ./eixTk/ptr_list.h:13,
                 from portage/packagetree.h:14,
                 from portage/packagetree.cc:10:
/usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/bits/stl_pair.h: In constructor 'std::pair<_T1, _T2>::pair(_U1&&, _U2&&) [with _U1 = const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, _U2 = int, _T1 = const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _T2 = Category*]':
portage/packagetree.cc:77:   instantiated from here
/usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/bits/stl_pair.h:90: error: invalid conversion from 'int' to 'Category*'
make[2]: *** [portage/packagetree.o] Error 1
make[2]: Leaving directory `/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5'
make: *** [all] Error 2
emake failed
Comment 1 Marc Richter 2010-12-23 19:30:34 UTC
Created attachment 257884 [details]
This is the build.log
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2010-12-23 19:37:12 UTC
Please paste your `emerge --info' output in a comment.
Comment 3 Marc Richter 2010-12-23 20:10:21 UTC
Created attachment 257891 [details]
This is the output from `emerge --info`
Comment 4 Marc Richter 2010-12-23 20:10:38 UTC
Done - thank you for pointing to that.
Comment 5 Jeroen Roovers (RETIRED) gentoo-dev 2010-12-23 22:00:43 UTC
(In reply to comment #2)
> Please paste your `emerge --info' output in a comment.

You obviously didn't get that.
Comment 6 Marc Richter 2010-12-23 22:04:50 UTC
Sorry, still learning <:)

This is the output from `emerge --info`:

Package:    app-portage/eix-0.20.5
Repository: gentoo
Maintainer: vaeth@mathematik.uni-wuerzburg.de darkside@gentoo.org
USE:  arm bzip2 elibc_glibc kernel_linux nls userland_GNU
>>> Unpacking source...
>>> Unpacking eix-0.20.5.tar.xz to /var/tmp/portage/app-portage/eix-0.20.5/work
>>> Source unpacked in /var/tmp/portage/app-portage/eix-0.20.5/work
>>> Preparing source in /var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5 ...
 * econf: updating eix-0.20.5/config/config.sub with /usr/share/gnuconfig/config.sub
 * econf: updating eix-0.20.5/config/config.guess with /usr/share/gnuconfig/config.guess
./configure --prefix=/usr --build=armv5tel-softfloat-linux-gnueabi --host=armv5tel-softfloat-linux-gnueabi --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --with-bzip2 --without-sqlite --without-rst --enable-nls --disable-separate-tools --disable-security --disable-optimization --disable-strong-optimization --disable-debugging --with-ebuild-sh-default=/usr/lib/portage/bin/ebuild.sh --with-portage-rootpath=/opt/bin:/usr/armv5tel-softfloat-linux-gnueabi/gcc-bin/4.4.4 --with-eprefix-default= --docdir=/usr/share/doc/eix-0.20.5 --htmldir=/usr/share/doc/eix-0.20.5/html
checking build system type... armv5tel-softfloat-linux-gnueabi
checking host system type... armv5tel-softfloat-linux-gnueabi
checking target system type... armv5tel-softfloat-linux-gnueabi
checking whether to enable maintainer-specific portions of Makefiles... no
configure: Trying to enable dependency tracking for consistency with silent rules
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 armv5tel-softfloat-linux-gnueabi-g++... armv5tel-softfloat-linux-gnueabi-g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether armv5tel-softfloat-linux-gnueabi-g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of armv5tel-softfloat-linux-gnueabi-g++... gcc3
checking whether debugging options should be used... no (on request)
checking whether strong optimization options should be used... no (on request)
checking whether optimization options should be used... no (on request)
checking whether strong warning options should be used... no (default)
checking whether warning options should be used... no (default)
checking whether security options should be used... no (on request)
checking whether options should not be tested individually... no (default)
checking how to run the C++ preprocessor... armv5tel-softfloat-linux-gnueabi-g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether CXXFLAGS=-Werror is known... yes
checking whether LDFLAGS=-Wl,--fatal-warnings is known... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/gmsgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for armv5tel-softfloat-linux-gnueabi-gcc... armv5tel-softfloat-linux-gnueabi-gcc
checking whether we are using the GNU C compiler... yes
checking whether armv5tel-softfloat-linux-gnueabi-gcc accepts -g... yes
checking for armv5tel-softfloat-linux-gnueabi-gcc option to accept ISO C89... none needed
checking dependency style of armv5tel-softfloat-linux-gnueabi-gcc... gcc3
checking for ld used by GCC... /usr/armv5tel-softfloat-linux-gnueabi/bin/ld
checking if the linker (/usr/armv5tel-softfloat-linux-gnueabi/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for null-device... /dev/null
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for regcomp... yes
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strrchr... yes
checking for fnmatch... yes
checking for memset... yes
checking for strtoul... yes
checking for strndup... yes
checking for canonicalize_file_name... yes
checking for realpath... yes
checking for vfork... yes
checking for setenv... yes
checking for geteuid... yes
checking for sys/param.h... yes
checking climits usability... yes
checking climits presence... yes
checking for climits... yes
checking tr1/cstdint usability... yes
checking tr1/cstdint presence... yes
checking for tr1/cstdint... yes
checking whether libbz2 should be used... yes (on request)
checking whether __builtin_expect can be used... yes
checking whether __attribute__ ((__unused__)) can be used... yes
checking whether __attribute__ ((__noreturn__)) can be used... yes
checking whether sqlite should be used... no (on request)
checking for armv5tel-softfloat-linux-gnueabi-pkg-config... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking PORTDIR_CACHE_METHOD default... metadata-flat (default)
checking EPREFIX default... (empty)
checking EIX_PREFIX default... (empty)
checking ROOT default... (empty)
checking EXEC_EBUILD_SH default... /usr/lib/portage/bin/ebuild.sh (on request)
checking PORTAGE_ROOTPATH default... /opt/bin:/usr/armv5tel-softfloat-linux-gnueabi/gcc-bin/4.4.4
checking PORTAGE_BIN_PATH default... (empty)
checking default remote path... http://dev.gentooexperimental.org/eix_cache/eix-caches.tbz2
checking whether byte ordering is bigendian... no
checking for uint8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking gcc version... 4.4.4
configure: creating ./config.status
config.status: creating Makefile
config.status: creating manpage/Makefile
config.status: creating src/Makefile
config.status: creating doc/Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile


eix-0.20.5 configured successfully.

CXXFLAGS: -std=gnu++0x -fvisibility-inlines-hidden -Os -march=armv5te -pipe -fomit-frame-pointer

LDFLAGS:  -Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -Wl,--as-needed


>>> Source configured.
>>> Compiling source in /var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5 ...
make 
make  all-recursive
make[1]: Entering directory `/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5'
Making all in po
make[2]: Entering directory `/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5/po'
make[2]: Leaving directory `/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5/po'
Making all in src
make[2]: Entering directory `/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5/src'
  CXX    eixTk/ansicolor.o
  CXX    eixTk/argsreader.o
  CXX    eixTk/exceptions.o
  CXX    eixTk/filenames.o
  CXX    eixTk/formated.o
  CXX    eixTk/stringutils.o
  CXX    eixTk/sysutils.o
  CXX    eixTk/utils.o
  CXX    eixTk/varsreader.o
  CXX    database/io.o
  CXX    database/header.o
  CXX    database/package_reader.o
  CXX    portage/conf/portagesettings.o
  CXX    portage/conf/cascadingprofile.o
  CXX    portage/basicversion.o
  CXX    portage/extendedversion.o
  CXX    portage/mask.o
  CXX    portage/package.o
  CXX    portage/vardbpkg.o
  CXX    portage/packagetree.o
In file included from /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/bits/stl_algobase.h:66,
                 from /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/list:61,
                 from ./eixTk/ptr_list.h:13,
                 from portage/packagetree.h:14,
                 from portage/packagetree.cc:10:
/usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/bits/stl_pair.h: In constructor 'std::pair<_T1, _T2>::pair(_U1&&, _U2&&) [with _U1 = const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, _U2 = int, _T1 = const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _T2 = Category*]':
portage/packagetree.cc:77:   instantiated from here
/usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.4/include/g++-v4/bits/stl_pair.h:90: error: invalid conversion from 'int' to 'Category*'
make[2]: *** [portage/packagetree.o] Error 1
make[2]: Leaving directory `/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5'
make: *** [all] Error 2
emake failed
* ERROR: app-portage/eix-0.20.5 failed:
*   emake failed
* 
* Call stack:
*     ebuild.sh, line  56:  Called src_compile
*   environment, line 855:  Called _eapi2_src_compile
*     ebuild.sh, line 654:  Called die
* The specific snippet of code:
*   		emake || die "emake failed"
* 
* If you need support, post the output of 'emerge --info =app-portage/eix-0.20.5',
* the complete build log and the output of 'emerge -pqv =app-portage/eix-0.20.5'.
* The complete build log is located at '/var/tmp/portage/app-portage/eix-0.20.5/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/app-portage/eix-0.20.5/temp/environment'.
* S: '/var/tmp/portage/app-portage/eix-0.20.5/work/eix-0.20.5'
Comment 7 Martin Väth 2010-12-24 17:05:27 UTC
The code seems to be correct: It looks like the compiler is not able to
convert NULL into Category* which is rather strange.

Why do you have -std=gnu++0x in your CXXFLAGS?
Perhaps this breaks your compiler.
Please remove it from you CXXFLAGS and retry.
Comment 8 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-12-24 17:07:02 UTC
and let's focus on the stable candidate only (0.22.5)
Comment 9 Martin Väth 2010-12-24 21:13:36 UTC
(In reply to comment #8)
> and let's focus on the stable candidate only (0.22.5)

You are right; the version numbers look so similar that I missed this :)

Anyway, the sourcefiles where the error occurs are practically unchanged
between these two versions, so I would be surprised if it would work in
the new version.

However, I am almost sure that the experimental -std flag is the culprit:
With gcc-4.5.1, I do not get this error with the same flag, but many
other error messages due to strange typecasting behavior.
So unless you have a serious reason to require an experimental language
"standard" on this architecture, I would close this bug
(if eix compiles without this flag or with a more reasonable replacement).
Comment 10 Marc Richter 2010-12-24 22:38:40 UTC
I had -std=gnu++0x in there, because a guide from the web told me to do so :)
I'm not so deep into these things to have this veryfied on my own. And since the ARM platform is completely new to me, too, I just didn't know better ..

I changed the CXXFLAGS now to:

CFLAGS="-Os -march=armv5te -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

But what I can't understand is your comment to a version 0.22.5 ; please have a look at my search results (right after an `emerge --sync`):

gentoo-ds ~ # emerge --search eix
Searching...
[ Results for search key : eix ]
[ Applications found : 1 ]

*  app-portage/eix
      Latest version available: 0.20.5
      Latest version installed: [ Not Installed ]
      Size of files: 403 kB
      Homepage:      http://eix.berlios.de
      Description:   Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more
      License:       GPL-2

gentoo-ds ~ #

When I have a look at http://packages.gentoo.org/package/app-portage/eix (or the "KEYWORDS" in /usr/portage/app-portage/eix/eix-0.22.5.ebuild) , eix is masked for each architecture but hppa and x86 .
Do you think I should emerge 0.22.5 on my arm anyway?

I'll now emerge the 0.20.5 anyway until your opinion to this decision. I'll tell you if that worked without the -std=gnu++0x then.

Please held this issue open a few hours.
Comment 11 Marc Richter 2010-12-24 23:15:31 UTC
Oh - was faster than expected - it seems like you were right: When I have the -std=gnu++0x - part removed, 0.20.5 works like a charm :)

After I have verified this, I tried the unstable 0.22.5 one. This seems to work, too.

This is the only warning I get:

 * QA Notice: Package has poor programming practices which may compile
 *            fine but exhibit random runtime failures.
 * portage/conf/cascadingprofile.cc:115: warning: NULL used in arithmetic

 * Please do not file a Gentoo bug and instead report the above QA
 * issues directly to the upstream developers of this software.
 * Homepage: http://eix.berlios.de

One argument more to mark the version stable for arm ;)

Thank you everyone for your help!
Comment 12 Martin Väth 2010-12-26 12:28:45 UTC
(In reply to comment #11)
> After I have verified this, I tried the unstable 0.22.5 one.

See bug 347305

> This is the only warning I get:
>
>  * portage/conf/cascadingprofile.cc:115: warning: NULL used in arithmetic

This is probably ok; see also bug 347305