RandomDSdevel n00b
Joined: 28 Feb 2022 Posts: 38 Location: Kokomo, IN, USA
|
Posted: Mon Sep 23, 2024 1:18 am Post subject: Issues With gnustep-base/gnustep-base Blocking World Updates |
|
|
Hardware:
- HP ZBook 17 G6
- Processor: Intel Core i9-9880H
- RAM: 8 GB
- GPU: NVIDIA Quadro T1000
- Storage: 256 GB
Host OS:
- Windows 11 Pro 23H2 (64-bit,) build 22631.4169
- Windows Feature Experience Pack 1000.22700.1034.0
Host Virtualization Container:
- Windows Subsystem for Linux 2 v2.2.4 (Windows Virtualization Platform)
- WSLg version: 1.0.61
- MSRDC version: 1.2.5326
- Direct3D version: 1.611.1-81528511
- DXCore version: 10.0.26091.1-240325-1447.ge-release
Guest OS:
- Linux Kernel: v5.15.153.1-microsoft-standard-WSL2
Toolchains:
- (Primary:) LLVM/Clang:
- sys-devel/llvm-common: v18.1.8
- sys-devel/llvm: v18.1.8-r4
- sys-devel/llvm-toolchain-symlinks: v18-r1
- sys-devel/clang-common: v18.1.8-r1
- sys-devel/clang: v18.1.8
- sys-devel/clang-toolchain-symlinks: v18
- sys-libs/compiler-rt: v18.1.8
- sys-libs/compiler-rt-sanitizers: v18.1.8
- sys-devel/clang-runtime: v18.1.8
- sys-devel/lld: v18.1.8
- sys-devel/lld-toolchain-symlinks: v18
- sys-libs/libcxx: v18.1.8
- sys-libs/libcxxabi: v18.1.8
- sys-libs/llvm-libunwind: v18.1.8
- sys-libs/libomp: v18.1.8
- dev-debug/lldb: v18.1.8
- (Fallback:) GCC:
- sys-devel/gnuconfig: v20240728
- sys-libs/glibc: v2.40
- sys-kernel/linux-headers: v6.10
- sys-devel/gcc: v14.2.1_p20240817
- sys-devel/gcc-config: v2.11
- sys-devel/binutils: v2.43-r1
- sys-libs/binutils-libs: v2.43-r2
- sys-devel/binutils-config: v5.5.2
---
…So I kind of went and did something a bit dumb the weekend before last and have been poking at to debug/fix it off and on ever since. I added some stuff* to `@world` before doing a `@world` update. (Head-desks.)
(* More KDE Gear apps, specifically.)
Here's where I got stuck:
Code: | kde-apps/kde-apps-meta-24.08.0:
⁝
`-- kde-apps/kdeutils-meta-24.08.0 (>=kde-apps/kdeutils-meta-24.08.0) ~amd64
⁝
`-- app-arch/unar-1.10.8 (app-arch/unar) amd64
`-- gnustep-base/gnustep-base-1.30.0 (gnustep-base/gnustep-base) ~amd64
`-- gnustep-base/gnustep-make-2.9.2 (>=gnustep-base/gnustep-make-2.6.0) ~amd64
`-- gnustep-base/libobjc2-2.2.1 (gnustep-base/libobjc2) ~amd64
`-- dev-cpp/robin-map-1.3.0 (dev-cpp/robin-map) amd64
|
Code: | … # equery uses kde-apps/kdeutils-meta
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for kde-apps/kdeutils-meta-24.08.0:
U I
+ - 7zip : Install app-arch/p7zip for 7zip archive support in kde-apps/ark
+ - gpg : Install kde-apps/kgpg which depends on kde-apps/akonadi
+ - lrz : Install app-arch/lrzip for LRZ archive support in kde-apps/ark
+ + plasma : Build optional KDE plasma addons
+ - rar : Install one of app-arch/rar, app-arch/unrar or app-arch/unar for RAR archive support in kde-apps/ark
- - webengine : Install app-editors/ghostwriter and kde-apps/kimagemapeditor, requiring dev-qt/qtwebengine
|
- `dev-cpp/robin-map` `emerge`d successfully; I haven't had any issues with it.
- I initially had some issues getting `gnustep-base/libobjc2` to `emerge` successfully, but then I figured out what was wrong there:
The package's source code includes some assembly code for exception handling that Clang's integrated assembly doesn't support and chokes on. Creating a new environment that adds `-fno-integrated-as` to a `COMMON_FLAGS` variable that gets expanded in and added inside `CFLAGS` and `CXXFLAGS` fixed the build. (Don't enable LTO, though; that breaks the build.)
- `gnustep-base/gnustep-make` then `emerge`d successfully.
- `gnustep-base/gnustep-base` won't `emerge` for me. The specific error I'm seeing is:
Code: | … # emerge --verbose --update --oneshot --newuse --changed-slot=y --with-bdeps=y gnustep-base/gnustep-base
These are the packages that would be merged, in order:
Calculating dependencies .... done!
Dependency resolution took 7.14 s (backtrack: 0/20).
[ebuild N ] gnustep-base/gnustep-base-1.30.0:0/1.30::gentoo USE="gnutls iconv icu libffi zeroconf -debug -doc" 0 KiB
Total: 1 package (1 new), Size of downloads: 0 KiB
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) gnustep-base/gnustep-base-1.30.0::gentoo
* gnustep-base-1.30.0.tar.gz BLAKE2B SHA512 size ;-) ... [ ok ]
>>> Unpacking source...
>>> Unpacking gnustep-base-1.30.0.tar.gz to /var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work
>>> Source unpacked in /var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work
>>> Preparing source in /var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work/gnustep-base-1.30.0 ...
Cleaning paths from GNUmakefile ...
Applying gnustep-base-1.26.0-no_compress_man.patch ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work/gnustep-base-1.30.0 ...
./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 --datarootdir=/usr/share --docdir=/usr/share/doc/gnustep-base-1.30.0 --htmldir=/usr/share/doc/gnustep-base-1.30.0/html --libdir=/usr/lib64 --enable-libffi --disable-ffcall --with-ffi-include=/usr/lib64/libffi/include --enable-tls --enable-iconv --enable-icu --enable-zeroconf --with-xml-prefix=/usr --with-gmp-include=/usr/include --with-gmp-library=/usr/lib64 --with-default-config=/etc/GNUstep/GNUstep.conf
⁝
checking the Objective-C runtime... GNU
⁝
clang NSBlocks.m -c \
-MMD -MP -Wall -Wdeclaration-after-statement -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -march=native -mtune=native -O2 -pipe -flto=thin -fobjc-runtime=gcc -fobjc-runtime=gcc -fblocks -fconstant-string-class=NSConstantString -I../. -I../ -I../../Headers -I. -I/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work/GNUstep/Library/Headers -I/usr/local/include -I/usr/include -I/usr/local/include -I/usr/local/include -I/usr/include -I/usr/include -I/usr/lib64/libffi/include -I/usr/lib64/libffi/include -I/usr/include/libxml2 -I/usr/include/libxml2 -I/usr/include \
-o obj/ObjectiveC2.obj/NSBlocks.m.o
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:89:15: error: typedef redefinition with different types
('void *' vs 'struct objc_property *')
89 | typedef void *objc_property_t;
| ^
/usr/include/objc/runtime.h:150:31: note: previous definition is here
150 | typedef struct objc_property* objc_property_t;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:108:9: warning: '_OBJC_NULL_PTR' macro redefined
[-Wmacro-redefined]
108 | #define _OBJC_NULL_PTR ((void*)0)
| ^
/usr/include/objc/runtime.h:216:10: note: previous definition is here
216 | # define _OBJC_NULL_PTR NULL
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:133:1: error: unknown type name 'Method_t'; did you mean
'Method'?
133 | Method * class_copyMethodList(Class cls, unsigned int *outCount);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:142:1: error: unknown type name 'Method_t'; did you mean
'Method'?
142 | Method class_getClassMethod(Class aClass, SEL aSelector);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:146:1: error: unknown type name 'Method_t'; did you mean
'Method'?
146 | Method class_getInstanceMethod(Class aClass, SEL aSelector);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:192:32: error: unknown type name 'Method_t'; did you mean
'Method'?
192 | char * method_copyArgumentType(Method method, unsigned int index);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:194:30: error: unknown type name 'Method_t'; did you mean
'Method'?
194 | char * method_copyReturnType(Method method);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:196:37: error: unknown type name 'Method_t'; did you mean
'Method'?
196 | void method_exchangeImplementations(Method m1, Method m2);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:196:48: error: unknown type name 'Method_t'; did you mean
'Method'?
196 | void method_exchangeImplementations(Method m1, Method m2);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:198:29: error: unknown type name 'Method_t'; did you mean
'Method'?
198 | void method_getArgumentType(Method method, unsigned int index, char *dst, size_t dst_len);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:200:30: error: unknown type name 'Method_t'; did you mean
'Method'?
200 | IMP method_getImplementation(Method method);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:202:20: error: unknown type name 'Method_t'; did you mean
'Method'?
202 | SEL method_getName(Method method);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:204:38: error: unknown type name 'Method_t'; did you mean
'Method'?
204 | unsigned method_getNumberOfArguments(Method method);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:206:27: error: unknown type name 'Method_t'; did you mean
'Method'?
206 | void method_getReturnType(Method method, char *dst, size_t dst_len);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:208:37: error: unknown type name 'Method_t'; did you mean
'Method'?
208 | const char * method_getTypeEncoding(Method method);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:210:30: error: unknown type name 'Method_t'; did you mean
'Method'?
210 | IMP method_setImplementation(Method method, IMP imp);
| ^~~~~~
| Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
84 | # define Method Method_t
| ^
/usr/include/objc/runtime.h:126:29: note: 'Method' declared here
126 | typedef struct objc_method *Method;
| ^
NSBlocks.m:27:26: warning: tentative definition of variable with internal linkage has incomplete
non-array type 'struct objc_class' [-Wtentative-definition-incomplete-type]
27 | static struct objc_class _NSConcreteGlobalBlockMeta;
| ^
/usr/include/objc/runtime.h:84:16: note: forward declaration of 'struct objc_class'
84 | typedef struct objc_class *Class;
| ^
NSBlocks.m:28:26: warning: tentative definition of variable with internal linkage has incomplete
non-array type 'struct objc_class' [-Wtentative-definition-incomplete-type]
28 | static struct objc_class _NSConcreteStackBlockMeta;
| ^
/usr/include/objc/runtime.h:84:16: note: forward declaration of 'struct objc_class'
84 | typedef struct objc_class *Class;
| ^
NSBlocks.m:30:26: warning: tentative definition of variable with internal linkage has incomplete
non-array type 'struct objc_class' [-Wtentative-definition-incomplete-type]
30 | static struct objc_class _NSBlock;
| ^
/usr/include/objc/runtime.h:84:16: note: forward declaration of 'struct objc_class'
84 | typedef struct objc_class *Class;
| ^
NSBlocks.m:31:26: warning: tentative definition of variable with internal linkage has incomplete
non-array type 'struct objc_class' [-Wtentative-definition-incomplete-type]
31 | static struct objc_class _NSBlockMeta;
| ^
/usr/include/objc/runtime.h:84:16: note: forward declaration of 'struct objc_class'
84 | typedef struct objc_class *Class;
| ^
NSBlocks.m:35:8: error: unknown type name 'objc_mutex_t'
35 | extern objc_mutex_t __objc_runtime_mutex;
| ^
NSBlocks.m:42:12: error: incomplete definition of type 'struct objc_class'
42 | metaClass->class_pointer = superclass->class_pointer;
| ~~~~~~~~~^
/usr/include/objc/runtime.h:84:16: note: forward declaration of 'struct objc_class'
84 | typedef struct objc_class *Class;
| ^
NSBlocks.m:42:40: error: incomplete definition of type 'struct objc_class'
42 | metaClass->class_pointer = superclass->class_pointer;
| ~~~~~~~~~~^
/usr/include/objc/runtime.h:84:16: note: forward declaration of 'struct objc_class'
84 | typedef struct objc_class *Class;
| ^
NSBlocks.m:43:12: error: incomplete definition of type 'struct objc_class'
43 | metaClass->super_class = superclass->class_pointer;
| ~~~~~~~~~^
/usr/include/objc/runtime.h:84:16: note: forward declaration of 'struct objc_class'
84 | typedef struct objc_class *Class;
| ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
5 warnings and 20 errors generated.
blocks_runtime.m:92:1: warning: incompatible redeclaration of library function
'_Block_object_assign' [-Wincompatible-library-redeclaration]
92 | _Block_object_assign(void *destAddr, void *object, const int flags)
| ^
blocks_runtime.m:92:1: note: '_Block_object_assign' is a builtin with type 'void
(void *, const void *, const int)'
blocks_runtime.m:154:1: warning: incompatible redeclaration of library function
'_Block_object_dispose' [-Wincompatible-library-redeclaration]
154 | _Block_object_dispose(void *object, const int flags)
| ^
blocks_runtime.m:154:1: note: '_Block_object_dispose' is a builtin with type
'void (const void *, const int)'
gmake[5]: *** [/usr/share/GNUstep/Makefiles/rules.make:534: obj/ObjectiveC2.obj/NSBlocks.m.o] Error 1
gmake[5]: *** Waiting for unfinished jobs....
2 warnings generated.
gmake[4]: *** [/usr/share/GNUstep/Makefiles/Instance/subproject.make:45: internal-subproject-all_] Error 2
gmake[3]: *** [/usr/share/GNUstep/Makefiles/Master/rules.make:297: ObjectiveC2.all.subproject.variables] Error 2
gmake[2]: *** [/usr/share/GNUstep/Makefiles/Master/rules.make:297: libgnustep-base.all.library.variables] Error 2
gmake[1]: *** [/usr/share/GNUstep/Makefiles/Master/library.make:37: internal-all] Error 2
gmake[1]: Leaving directory '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work/gnustep-base-1.30.0/Source'
make: *** [/usr/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53: internal-all] Error 2
* ERROR: gnustep-base/gnustep-base-1.30.0::gentoo failed (compile phase):
* emake failed
*
* If you need support, post the output of `emerge --info '=gnustep-base/gnustep-base-1.30.0::gentoo'`,
* the complete build log and the output of `emerge -pqv '=gnustep-base/gnustep-base-1.30.0::gentoo'`.
* The complete build log is located at '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/temp/environment'.
* Working directory: '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work/gnustep-base-1.30.0'
* S: '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work/gnustep-base-1.30.0'
>>> Failed to emerge gnustep-base/gnustep-base-1.30.0, Log file:
>>> '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/temp/build.log'
* Messages for package gnustep-base/gnustep-base-1.30.0:
* ERROR: gnustep-base/gnustep-base-1.30.0::gentoo failed (compile phase):
* emake failed
*
* If you need support, post the output of `emerge --info '=gnustep-base/gnustep-base-1.30.0::gentoo'`,
* the complete build log and the output of `emerge -pqv '=gnustep-base/gnustep-base-1.30.0::gentoo'`.
* The complete build log is located at '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/temp/environment'.
* Working directory: '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work/gnustep-base-1.30.0'
* S: '/var/tmp/portage/gnustep-base/gnustep-base-1.30.0/work/gnustep-base-1.30.0'
|
…Well, that isn't right. It looks to me like `gnustep-base/gnustep-base`'s build scripts are using GCC's Objective-C run-time library (detected as 'GNU') instead of the `gnustep-base/libobjc2` like they're supposed to be.
Am I doing something wrong, and if so, then what? Is there an option I can pass to `gnustep-base/gnustep-base`'s `./configure` script using `EXTRA_ECONF` to tell it where to find the correct Objecttive-C run-time library and/or which one to use? Alternatively, could I have possibly hit some kind of potential bug here?
My full logs are pending availability from my personal OneDrive until they've finished syncing to it. |
|