Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 339136 - Portage: preserve-libs broken for ELF (killing systems)
Summary: Portage: preserve-libs broken for ELF (killing systems)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: All Solaris
: High normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2010-09-29 15:05 UTC by Eric Meddaugh
Modified: 2010-09-30 16:19 UTC (History)
1 user (show)

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


Attachments
config.log (config.log,9.84 KB, text/plain)
2010-09-29 15:07 UTC, Eric Meddaugh
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Meddaugh 2010-09-29 15:05:31 UTC
Doing an upgrade, there was a dev-libs/mpfr-3.0.0 upgrade, it unmerged the package safely, but then could not install the new one:

--- replaced dir /sys_tools/usr
<<<          dir /sys_tools/usr/share/doc/mpfr-2.4.2_p3/html
<<<          dir /sys_tools/usr/share/doc/mpfr-2.4.2_p3/examples
<<<          dir /sys_tools/usr/share/doc/mpfr-2.4.2_p3
>>> Original instance of package unmerged safely.
Traceback (most recent call last):
  File "/sys_tools/usr/bin/emerge", line 44, in <module>
    retval = emerge_main()
  File "/sys_tools/usr/lib/portage/pym/_emerge/main.py", line 1684, in emerge_main
    myopts, myaction, myfiles, spinner)
  File "/sys_tools/usr/lib/portage/pym/_emerge/actions.py", line 441, in action_build
    retval = mergetask.merge()
  File "/sys_tools/usr/lib/portage/pym/_emerge/Scheduler.py", line 1085, in merge
    rval = self._merge()
  File "/sys_tools/usr/lib/portage/pym/_emerge/Scheduler.py", line 1403, in _merge
    self._main_loop()
  File "/sys_tools/usr/lib/portage/pym/_emerge/Scheduler.py", line 1545, in _main_loop
    self._poll_loop()
  File "/sys_tools/usr/lib/portage/pym/_emerge/PollScheduler.py", line 138, in _poll_loop
    handler(f, event)
  File "/sys_tools/usr/lib/portage/pym/_emerge/SpawnProcess.py", line 203, in _output_handler
    self._unregister_if_appropriate(event)
  File "/sys_tools/usr/lib/portage/pym/_emerge/AbstractPollTask.py", line 49, in _unregister_if_appropriate
    self.wait()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 114, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/sys_tools/usr/lib/portage/pym/_emerge/EbuildPhase.py", line 195, in _post_phase_exit
    self.wait()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 114, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/sys_tools/usr/lib/portage/pym/_emerge/TaskSequence.py", line 43, in _task_exit_handler
    self.wait()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 114, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/sys_tools/usr/lib/portage/pym/_emerge/CompositeTask.py", line 105, in _default_final_exit
    return self.wait()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 114, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/sys_tools/usr/lib/portage/pym/_emerge/EbuildBuild.py", line 237, in _build_exit
    self.wait()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 114, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/sys_tools/usr/lib/portage/pym/_emerge/CompositeTask.py", line 105, in _default_final_exit
    return self.wait()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 114, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/sys_tools/usr/lib/portage/pym/_emerge/Scheduler.py", line 1382, in _build_exit
    self._schedule()
  File "/sys_tools/usr/lib/portage/pym/_emerge/PollScheduler.py", line 52, in _schedule
    return self._schedule_tasks()
  File "/sys_tools/usr/lib/portage/pym/_emerge/Scheduler.py", line 1579, in _schedule_tasks
    if q.schedule():
  File "/sys_tools/usr/lib/portage/pym/_emerge/SequentialTaskQueue.py", line 55, in schedule
    task.start()
  File "/sys_tools/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 23, in start
    self._start()
  File "/sys_tools/usr/lib/portage/pym/_emerge/PackageMerge.py", line 43, in _start
    self.returncode = self.merge.merge()
  File "/sys_tools/usr/lib/portage/pym/_emerge/MergeListItem.py", line 147, in merge
    retval = self._install_task.install()
  File "/sys_tools/usr/lib/portage/pym/_emerge/EbuildBuild.py", line 325, in install
    rval = merge.execute()
  File "/sys_tools/usr/lib/portage/pym/_emerge/EbuildMerge.py", line 26, in execute
    blockers=self.find_blockers)
  File "/sys_tools/usr/lib/portage/pym/portage/dbapi/vartree.py", line 4007, in merge
    mydbapi=mydbapi, prev_mtimes=prev_mtimes)
  File "/sys_tools/usr/lib/portage/pym/portage/dbapi/vartree.py", line 3858, in merge
    mydbapi=mydbapi, prev_mtimes=prev_mtimes)
  File "/sys_tools/usr/lib/portage/pym/portage/dbapi/vartree.py", line 3879, in _merge
    cleanup=cleanup, mydbapi=mydbapi, prev_mtimes=prev_mtimes)
  File "/sys_tools/usr/lib/portage/pym/portage/dbapi/vartree.py", line 3443, in treewalk
    cpv_lib_map = self._find_unused_preserved_libs()
  File "/sys_tools/usr/lib/portage/pym/portage/dbapi/vartree.py", line 2445, in _find_unused_preserved_libs
    soname = linkmap.getSoname(preserved_node)
  File "/sys_tools/usr/lib/portage/pym/portage/util/_dyn_libs/LinkageMapELF.py", line 493, in getSoname
    raise KeyError("%s not in object list" % obj_key)
KeyError: "[u'/sys_tools/usr/lib/libmpfr.so.1.2.2'] not in object list"


Doing an install of mpfr fails:

>>> Emerging (1 of 1) dev-libs/mpfr-3.0.0
--- Invalid atom in /sys_tools/usr/portage/profiles/prefix/sunos/solaris/5.10/x86/package.use.mask: Slot deps are not allowed in EAPI 0: 'sys-devel/gcc:4.3'
 * mpfr-3.0.0.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                    [ ok ]
 * checking ebuild checksums ;-) ...                                     [ ok ]
 * checking auxfile checksums ;-) ...                                    [ ok ]
 * checking miscfile checksums ;-) ...                                   [ ok ]
 * Package:    dev-libs/mpfr-3.0.0
 * Repository: gentoo_prefix
 * Maintainer: toolchain@gentoo.org
 * USE:  elibc_SunOS kernel_SunOS prefix userland_GNU x86-solaris
>>> Unpacking source...
>>> Unpacking mpfr-3.0.0.tar.bz2 to /sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/work
>>> Source unpacked in /sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/work
>>> Compiling source in /sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/work/mpfr-3.0.0 ...
 * econf: updating mpfr-3.0.0/config.sub with /sys_tools/usr/share/gnuconfig/config.sub
 * econf: updating mpfr-3.0.0/config.guess with /sys_tools/usr/share/gnuconfig/config.guess
./configure --prefix=/sys_tools/usr --build=i386-pc-solaris2.10 --host=i386-pc-solaris2.10 --mandir=/sys_tools/usr/share/man --infodir=/sys_tools/usr/share/info --datadir=/sys_tools/usr/share --sysconfdir=/sys_tools/etc --localstatedir=/sys_tools/var/lib
checking for a BSD-compatible install... /sys_tools/usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /sys_tools/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to disable maintainer-specific portions of Makefiles... yes
checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
checking for grep that handles long lines and -e... /sys_tools/bin/grep
checking for egrep... /sys_tools/bin/grep -E
checking for a sed that does not truncate output... /sys_tools/bin/sed
checking for i386-pc-solaris2.10-gcc... i386-pc-solaris2.10-gcc
checking whether the C compiler works... no
configure: error: in `/sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/work/mpfr-3.0.0':
configure: error: C compiler cannot create executables
See `config.log' for more details.

!!! Please attach the following file when seeking support:
!!! /sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/work/mpfr-3.0.0/config.log
 * ERROR: dev-libs/mpfr-3.0.0 failed:
 *   econf failed
 * 
 * Call stack:
 *     ebuild.sh, line   62:  Called src_compile
 *   environment, line 2712:  Called _eapi0_src_compile
 *     ebuild.sh, line  630:  Called econf
 *     ebuild.sh, line  564:  Called die
 * The specific snippet of code:
 *                    die "econf failed"
 * 
 * If you need support, post the output of 'emerge --info =dev-libs/mpfr-3.0.0',
 * the complete build log and the output of 'emerge -pqv =dev-libs/mpfr-3.0.0'.
 * The complete build log is located at '/sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/temp/build.log'.
 * The ebuild environment file is located at '/sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/temp/environment'.
 * S: '/sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/work/mpfr-3.0.0'

>>> Failed to emerge dev-libs/mpfr-3.0.0, Log file:

>>>  '/sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/temp/build.log'

 * Messages for package dev-libs/mpfr-3.0.0:

 * ERROR: dev-libs/mpfr-3.0.0 failed:
 *   econf failed
 * 
 * Call stack:
 *     ebuild.sh, line   62:  Called src_compile
 *   environment, line 2712:  Called _eapi0_src_compile
 *     ebuild.sh, line  630:  Called econf
 *     ebuild.sh, line  564:  Called die
 * The specific snippet of code:
 *                     die "econf failed"
 * 
 * If you need support, post the output of 'emerge --info =dev-libs/mpfr-3.0.0',
 * the complete build log and the output of 'emerge -pqv =dev-libs/mpfr-3.0.0'.
 * The complete build log is located at '/sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/temp/build.log'.
 * The ebuild environment file is located at '/sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/temp/environment'.
 * S: '/sys_tools/var/tmp/portage/dev-libs/mpfr-3.0.0/work/mpfr-3.0.0'


From config.log:

configure:3941: checking whether the C compiler works
configure:3963: i386-pc-solaris2.10-gcc -O2 -pipe -I/sys_tools/usr/include -L/sys_tools/usr/lib -R/sys_tools/usr/lib -L/sys_tools/lib -R/sys_tools/lib conftest.c  >&5
libc.so.1: cc1: fatal: libmpfr.so.1: open failed: No such file or directory
i386-pc-solaris2.10-gcc: Internal error: Killed (program cc1)
Please submit a full bug report.
See <http://bugs.gentoo.org/> for instructions.

Can I get fixed?
Comment 1 Eric Meddaugh 2010-09-29 15:07:09 UTC
Created attachment 248978 [details]
config.log
Comment 2 Eric Meddaugh 2010-09-29 15:09:07 UTC
Actually this is happening on all my prefix portage copies.

Solaris: sparc/x86
Linux: 32-bit/64-bit

Any quick way to get it fixed?  Or is there any other way to prevent this from happening?
Comment 3 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-09-29 15:09:53 UTC
This is a portage issue related to the preserve-libs feature. Not sure of a
workaround at the moment.
Comment 4 Fabian Groffen gentoo-dev 2010-09-29 15:14:58 UTC
I assume your compiler is completely h0rkened right now?

Do you have any compilers left?

Portage is the culprit here, you better not use >15333 it seems.
Comment 5 Heiko 2010-09-29 15:21:45 UTC
(In reply to comment #2)
> Any quick way to get it fixed?

Maybe copying the new lib to the old one's name could make it roll again, since
it's just missing the old libs for not-yet-rebuilt packages. Though this is
completely untested.

Comment 6 Eric Meddaugh 2010-09-29 15:29:03 UTC
Well, I can get back recovering from a backup.  Should I mask out mpfr for the time being?  How would I get it updated without breaking things?
Comment 7 Fabian Groffen gentoo-dev 2010-09-29 17:32:36 UTC
mask portage instead, in the meanwhile I'll try to debug and fix this
Comment 8 Fabian Groffen gentoo-dev 2010-09-29 17:50:27 UTC
I have this in my make.conf:

USE_PYTHON="2.6 2.7"

is that correct?
Comment 9 Fabian Groffen gentoo-dev 2010-09-29 18:18:53 UTC
Ignore my last comment which is on the wrong bug.  Appropriate portage versions are masked now.
Comment 11 Fabian Groffen gentoo-dev 2010-09-29 19:23:59 UTC
released in sys-apps/portage-2.2.01.16711, masked for hopefully more isolated testing
Comment 12 Fabian Groffen gentoo-dev 2010-09-29 19:26:02 UTC
If you need help on recovering your system, please say so.  The bug is closed, but that doesn't mean I want to help you get going again.
Comment 13 Eric Meddaugh 2010-09-30 16:19:50 UTC
I got our emerge copy running again.  I did have to recover it from a backup.  I've since them resynced and so far so good.  Upgrading mpfr worked.  I just had to emerge @preserved-rebuild to rebuild what was linked against the old one.