Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 661998

Summary: gnustep-base/gnustep-make-2.{8.0-r1,9.0} : * Could not find Objective-C runtime
Product: Gentoo Linux Reporter: Toralf Förster <toralf>
Component: Current packagesAssignee: Gentoo Gnustep project <gnustep>
Status: CONFIRMED ---    
Severity: normal CC: mmk, progenyx
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge-info.txt
die.env
emerge-history.txt
etc.portage.tbz2
gnustep-base:gnustep-make-2.7.0:20180723-230229.log
logs.tbz2

Description Toralf Förster gentoo-dev 2018-07-24 17:39:10 UTC
 * Please switch your active compiler to gcc with USE=objc, or clang
 * ERROR: gnustep-base/gnustep-make-2.7.0::gentoo failed (setup phase):
 *   Could not find Objective-C runtime
 * 
 * Call stack:
 *                   ebuild.sh, line 124:  Called pkg_setup

  -------------------------------------------------------------------

  This is an unstable amd64 chroot image at a tinderbox (==build bot)
  name: 17.0-no-multilib-hardened_test_20180718-175402

  -------------------------------------------------------------------

gcc-config -l:
 [1] x86_64-pc-linux-gnu-7.3.0 *

Available Python interpreters, in order of preference:
  [1]   python3.5
  [2]   python3.7 (fallback)
  [3]   python2.7 (fallback)




emerge -qpv gnustep-base/gnustep-make
[ebuild  N    ] gnustep-base/gnustep-make-2.7.0  USE="-debug -doc -libobjc2 -native-exceptions"
Comment 1 Toralf Förster gentoo-dev 2018-07-24 17:39:13 UTC
Created attachment 540750 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2018-07-24 17:39:16 UTC
Created attachment 540752 [details]
die.env
Comment 3 Toralf Förster gentoo-dev 2018-07-24 17:39:19 UTC
Created attachment 540754 [details]
emerge-history.txt
Comment 4 Toralf Förster gentoo-dev 2018-07-24 17:39:22 UTC
Created attachment 540756 [details]
etc.portage.tbz2
Comment 5 Toralf Förster gentoo-dev 2018-07-24 17:39:25 UTC
Created attachment 540758 [details]
gnustep-base:gnustep-make-2.7.0:20180723-230229.log
Comment 6 Toralf Förster gentoo-dev 2018-07-24 17:39:28 UTC
Created attachment 540760 [details]
logs.tbz2
Comment 7 Bernard Cafarelli gentoo-dev 2018-08-09 10:29:31 UTC
Hey Toralf,

how was gcc-7.3.0 configured? By default (for some time) it enables USE=objc and the test works here

Side-note, sadly this USE=objc needs to be a runtime check, as we need to see if the running compiler has objective-c support
Comment 8 Toralf Förster gentoo-dev 2018-08-09 16:19:40 UTC
(In reply to Bernard Cafarelli from comment #7)
nothing conspicious wrt to GCC in the attached make.conf (etc.portage.tbz2 file), or?
Comment 9 Bernard Cafarelli gentoo-dev 2018-08-09 16:40:50 UTC
Nothing explicit (no USE=-* or USE=-objc), but if gcc had support for objc the test should pass (and passes here).

I wonder what may have changed recently too, this ebuild and the check are quite old and worked before?
Comment 10 Toralf Förster gentoo-dev 2020-03-13 19:56:45 UTC
*** Bug 712388 has been marked as a duplicate of this bug. ***
Comment 11 Rafael Marçalo 2020-03-21 18:56:58 UTC
Same here, I've setup a couple time ago a script to install some gentoo packages and one of them pulled this package as a dependency, now I can't compile this package due to this error :S
Comment 12 Progenyx 2023-01-31 00:32:04 UTC
Just wanted to mention that switching the active compiler to clang does nothing.
Comment 13 Volkmar W. Pogatzki 2023-09-14 07:01:39 UTC
 * gnustep-make-2.9.0 requires a working Objective-C runtime and a compiler with
 * Objective-C support. Your current settings lack these requirements
 * Please switch your active compiler to gcc with USE=objc, or clang
 * ERROR: gnustep-base/gnustep-make-2.9.0::gentoo failed (setup phase):
 *   Could not find Objective-C runtime
 * 
 * Call stack:
 *                   ebuild.sh, line 136:  Called pkg_setup
 *   gnustep-make-2.9.0.ebuild, line  53:  Called die
 * The specific snippet of code:
 *              die "Could not find Objective-C runtime"
 * 
 * If you need support, post the output of `emerge --info '=gnustep-base/gnustep-make-2.9.0::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=gnustep-base/gnustep-make-2.9.0::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/gnustep-base/gnustep-make-2.9.0/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/gnustep-base/gnustep-make-2.9.0/temp/die.env'.
 * Working directory: '/var/tmp/portage/gnustep-base/gnustep-make-2.9.0/empty'
 * S: '/var/tmp/portage/gnustep-base/gnustep-make-2.9.0/work/gnustep-make-2.9.0
Comment 14 Michael Mair-Keimberger (iamnr3) 2023-09-19 16:52:08 UTC
I'll hit this problem too, so i was looking a bit into it.

The gnustep-make ebuild is looking for libobjc.so to be present which is why it needs sys-devel/gcc:*[objc] (which is in DEPEND)
So far so good, however what's interesting, my sys-devel/gcc wasn't build with [objc] enabled. emerge however didn't complain!

The Dependencies in gnustep-make seems to be ok:
DEPEND="${GNUSTEP_CORE_DEPEND}
	>=sys-devel/make-3.75
	libobjc2? ( gnustep-base/libobjc2
		sys-devel/clang:* )
	!libobjc2? ( !!gnustep-base/libobjc2
		|| (
			sys-devel/gcc:*[objc]
			sys-devel/clang:*
		) )"

I've also checked this on a different system. Same behavior:
vt02 ~ # eix -I gcc
[?] sys-devel/gcc
     Available versions:  
     (8.5.0) [M]8.5.0-r1^t
     (9.5.0) [M]9.5.0^t
     (10)   10.4.0^t 10.4.1_p20221208^t **10.5.9999*l^t
     (11)   11.3.0^t 11.3.1_p20221209^t **11.4.9999*l^t
     (12)   (~)12.2.0^t (~)12.2.1_p20221203^t (~)12.2.1_p20221210^t{xpak} **12.3.9999*l^t
     (13)   ~*13.0.0_pre20221204^t ~*13.0.0_pre20221211^t **13.0.9999*l^t
       {ada cet custom-cflags +cxx d debug default-stack-clash-protection default-znow doc fixed-point +fortran go graphite hardened ieee-long-double jit libssp lto mpx multilib +nls +nptl objc objc++ objc-gc +openmp +pch pgo +pie rust +sanitize +ssp systemtap test valgrind vanilla vtv zstd}
     Installed versions:  13.2.1_p20230826(13)^t{xpak}(03:32:12 AM 08/28/2023)(cxx fortran multilib nls nptl openmp pie sanitize ssp -ada -cet -custom-cflags -d -debug -default-stack-clash-protection -default-znow -doc -fixed-point -go -graphite -hardened -ieee-long-double -jit -libssp -lto -modula2 -objc -objc++ -objc-gc -pch -pgo -systemtap -test -valgrind -vanilla -vtv -zstd)
     Homepage:            https://gcc.gnu.org/
     Description:         The GNU Compiler Collection

[?] sys-devel/gcc-config
     Available versions:  2.4 2.5-r1 (~)2.6 2.8 **9999*l {+cc-wrappers +native-symlinks}
     Installed versions:  2.11{xpak}(03:25:25 AM 05/15/2023)(cc-wrappers native-symlinks)
     Homepage:            https://gitweb.gentoo.org/proj/gcc-config.git/
     Description:         Utility to manage compilers

Found 2 matches
vt02 ~ # emerge -pv gnustep-make

Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 5.21 s.

[ebuild  N     ] gnustep-base/gnustep-make-2.9.0::gentoo  USE="-debug -doc -libobjc2 -native-exceptions" 598 KiB

Total: 1 package (1 new), Size of downloads: 598 KiB

 * IMPORTANT: 16 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.






Enabling the objc use-flag in gcc fixed the issue for me. (as intended by the ebuild). I only checked for gcc, why it also doesn't work with clang is a different story i guess...
Comment 15 ikcikor 2023-11-22 20:58:10 UTC
I just had this error because of the following:
1) I had two versions of gcc installed
2) The version selected via eselect gcc was not the most recent one
3) Emerging gnustep-make recompiled the most recent version of gcc with objective c support
4) Portage then proceeded to attempt to compile gnustep-make using the version of gcc that did not have objective c support compiled in, due to eselect pointing to it 

Fixed it by using eselect to pick the most recent gcc version which was now compiled with objective c support