#14386 closed bug (fixed)

libsolv fails to build, breaks native Haiku build

Reported by: cb88 Owned by: bonefish
Priority: normal Milestone: Unscheduled
Component: Build System Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

It may have something to do with this commit? Note the build continues if I revert this not sure if that is correct however.

https://github.com/haiku/haiku/commit/8d1f13817f33276a94a48396dbd3aa9f5634118d#diff-a82fe5730dfe0c72a83991020c4cd456

/boot/home/haiku/generated/download/libsol 100%[=======================================================================================>] 430.66K   458KB/s    in 0.9s    

2018-08-22 22:01:47 (458 KB/s) - ‘/boot/home/haiku/generated/download/libsolv_source-0.3.0_haiku_2014_12_22-2-source.hpkg’ saved [440997/440997]

ExtractHPKGArchive1 /boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source 
MkDir1 /boot/home/haiku/generated/objects/common/build 
MkDir1 /boot/home/haiku/generated/objects/common/build/libsolv 
GenerateLibsolvVersionHeader /boot/home/haiku/generated/objects/common/build/libsolv/solvversion.h 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/solv_xfopen.o 
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/ext/solv_xfopen.c:8: warning: `_GNU_SOURCE' redefined
/boot/home/haiku/*Initialization*:1: warning: this is the location of the previous definition
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/ext/solv_xfopen.c: In function `cookieopen':
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/ext/solv_xfopen.c:41: warning: assignment from incompatible pointer type
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/ext/solv_xfopen.c:43: warning: assignment from incompatible pointer type
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/ext/solv_xfopen.c:44: warning: assignment from incompatible pointer type
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/testcase.o 
C++ /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/repo_haiku.o 
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/ext/repo_haiku.cpp: In function `void add_resolvable_expressions(Repo *, Offset &, const BObjectList<BPackageKit::BPackageResolvableExpression> &)':
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/ext/repo_haiku.cpp:96: warning: enumeration value `B_PACKAGE_RESOLVABLE_OP_ENUM_COUNT' not handled in switch
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/bitmap.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/poolarch.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/poolvendor.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/poolid.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/strpool.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/dirpool.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/solver.o 
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/solver.c: In function `solver_calculate_multiversionmap':
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/solver.c:2692: warning: suggest explicit braces to avoid ambiguous `else'
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/solver.c: In function `solver_solve':
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/solver.c:3414: warning: suggest explicit braces to avoid ambiguous `else'
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/solver.c:3482: warning: suggest explicit braces to avoid ambiguous `else'
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/solver.c: In function `pool_job2solvables':
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/solver.c:4177: warning: suggest explicit braces to avoid ambiguous `else'
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/solverdebug.o 
...on 200th target...
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/repo_solv.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/repo_write.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/evr.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/pool.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/queue.o 
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/repo.o 
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/repo.c:15: warning: `_GNU_SOURCE' redefined
/boot/home/haiku/*Initialization*:1: warning: this is the location of the previous definition
Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/repodata.o 
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/repodata.c:17: warning: `_GNU_SOURCE' redefined
/boot/home/haiku/*Initialization*:1: warning: this is the location of the previous definition
/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/repodata.c:247: conflicting types for `strchrnul'
/boot/system/develop/headers/posix/string.h:44: previous declaration of `strchrnul'

gcc -O2 -Wall -Wno-trigraphs -Wmissing-prototypes -Wpointer-arith -Wcast-align -Wsign-compare -Wno-multichar -include /boot/home/haiku/headers/build/HaikuBuildCompatibility.h -Wno-sign-compare -Wno-missing-prototypes -fPIC -c "/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src/repodata.c" -DLIBSOLV_INTERNAL -DHAIKU -DENABLE_HAIKU -DVERSION=\"0.3.0\" -D_GNU_SOURCE -DHAVE_FOPENCOOKIE -DARCH_x86 -D_NO_INLINE_ASM -D__NO_INLINE__ -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAIKU_HOST_USE_XATTR -DHAIKU_HOST_PLATFORM_HAIKU -DHAIKU_PACKAGING_ARCH=\"x86_gcc2\" -I/boot/home/haiku/build/user_config_headers -I/boot/home/haiku/build/config_headers -Isrc/build/libsolv -I/boot/home/haiku/generated/objects/common/build/libsolv -I/boot/home/haiku/generated/objects/haiku_host/x86_gcc2/common/build/libsolv -I/boot/home/haiku/generated/objects/haiku/x86_gcc2/common/build/libsolv -I/boot/home/haiku/generated/build_packages/libsolv_source-0.3.0_haiku_2014_12_22-2-source/develop/sources/libsolv-0.3.0_haiku_2014_12_22-2/sources/src -I- -I/boot/home/haiku/headers/build/host/haiku_host -o "/boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/repodata.o" ;

...failed Cc /boot/home/haiku/generated/objects/haiku_host/x86_gcc2/release/build/libsolv/repodata.o ...

BUILD FAILURE:
...failed updating 1 target(s)...
...skipped 8 target(s)...
...updated 205 target(s)...

Change History (4)

comment:1 Changed 12 months ago by waddlesplash

The problem appears to be that HAVE_STRCHRNUL is not defined when the libsolv jamfile clearly defines it. No idea what's up with that.

comment:2 Changed 12 months ago by cb88

I checked your hunch that HOST_PLATFORM might be undefined.. I mentioned this on IRC just copying here.

but echo "$(HOST_PLATFORM)" ; prints haiku_host just above the first switch statement that uses it in that Jamfile.

comment:3 Changed 12 months ago by cb88

Note HAVE_STRCHRNUL is not defined for the case where HOST_PLATFORM is haiku_host

I added it to the haiku_host case and it seems to build now...

comment:4 Changed 12 months ago by pulkomandy

Resolution: fixed
Status: newclosed

Our strchrnul is protected by _GNU_SOURCE, so it makes sense that it wasn't visible before, but now it is. And we should set HAVE_STRCHRNUL accordingly.

Fixed in hrev52266.

Note: See TracTickets for help on using tickets.