Description of problem: RPM HEAD fails to build on glibc because of a difference in the way pthread.h defines pthread_cleanup_push and pthread_cleanup_pop. Version-Release number of selected component (if applicable): CVS HEAD I'll attach a copy of my pthread.h and a patch that allows it to compile.
Created attachment 99672 [details] pthread.h from glibc 2.3.4 As promised, a copy of pthread.h from glibc-2.3.4
Created attachment 99673 [details] Patch to fix build problem This patch fixes the mentioned build problem.
There are a few more things that I had to do to get this to work right. I'll attach a rollup patch. I also had issues with libedl.so on the 'make check' stage: I noticed that the "install:" target for the makefile had all the commands commented out within that directory. The autogen.sh and Makefile.in force the user to use the bundled "file" package. So, as I see it, there are a number of bugs: 1. Unable to use external 'file'. 2. libelf compile failure (fixed by rollup.patch) 3. no determination of selinux (fixed by rollup.patch) 4. compile error in rpmio/rpmsq.c due to new pthread.h (fixed in rollup.patch) 5. Bad INSTALL documentation of commands needed for tarball based install (fixed in rollup.patch) 6. make check fails when using bundled libelf.
Created attachment 99674 [details] rollup.patch As mentioned in my last comment, this patch fixes. 1) compile failure in libelf/tests/ 2) autogen.sh not recognizing a non-selinux system 3) compile error in rpmio/rpmsq.c in conjunction with glibc-2.3.4. 4) INSTALL file omission.
1) internal elfutils is not current and should not be used for any serious work. what is there is useful for rpm development because the internal AOPI includes are annotated and so splint can be used to detect problems while developming. 2) forcing selinux build failure is the desired default build path for RH rpm. This has been fixed in other ways on ehad and rpm-4_4 branches of rpm. 3) fixed afaik in rpm-4.4.1-0.18 and later. 4) inclusion of -p or not doesn't look like a serious documentation flaw. /var/lock/rpm is now in /var/lib/rpm and is a configurable macro. Thanks for the patches however, apologies for the long delay.