Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#42 closed task (worksforme)

Can't compile, pthread error during configure

Reported by: dickk Owned by:
Priority: Feedback pending Milestone: preview
Component: Common Tasks Keywords:
Cc:

Description

Hi, I'm getting this pthread error when I try to compile, Hopefully you can figure out what my problem is from the info following below.

[E:\5.0.6Netlabs]ash
sh: can't access tty; job control turned off
# export WATCOM=E:/WATCOM
# export PATH_SDK_LIBSDL=E:/Tools/os2.x86/libsdl/SDL
#
# ./configure --with-ow-dir=$WATCOM --enable-vnc --disable-docs
Checking for environment: Determined build machine: os2.x86, target machine: os2
.x86, OK.
Checking for kBuild: found, OK.
grep: Invalid back reference
Checking for gcc: found version 4.9.2, OK.
Checking for Open Watcom: found version 1.9, OK.
Checking for iasl: found version 20131115, OK.
Checking for xslt: found, OK.
Checking for mkisofs: found mkisofs 2.01.01a59 (i386-pc-os2_emx) Copyright (C) 1
993-1997 Eric Youngdale (C) 1997-2009 J÷rg Schilling, OK.
Checking for pthread:

pthread not found at -lpthread or pthread headers not found
Check the file E:/5.0.6Netlabs/configure.log for detailed error information.

Check E:/5.0.6Netlabs/configure.log for details
#

And here's the Configure Log

# Log file generated by
#
# './configure --with-ow-dir=E:/WATCOM --enable-vnc --disable-docs'
#

* Checking environment *
Determined build machine: os2.x86, target machine: os2.x86

* Checking kBuild *
found

* Checking gcc *
found version 4.9.2

* Checking Open Watcom *
found version 1.9

* Checking iasl *
found version 20131115

* Checking xslt *
found

* Checking mkisofs *
found mkisofs 2.01.01a59 (i386-pc-os2_emx) Copyright (C) 1993-1997 Eric Youngdale (C) 1997-2009 J÷rg Schilling

* Checking pthread *
compiling the following source file:
#include <cstdio>
#include <pthread.h>
extern "C" int main(void)
{

pthread_mutex_t mutex;
if (pthread_mutex_init(&mutex, NULL)) {

printf("pthread_mutex_init() failed\n");
return 1;

}
if (pthread_mutex_lock(&mutex)) {

printf("pthread_mutex_lock() failed\n");
return 1;

}
if (pthread_mutex_unlock(&mutex)) {

printf("pthread_mutex_unlock() failed\n");
return 1;

}
printf("found, OK.\n");

}
using the following command line:
g++ -Zomf -g -O -Wall -o E:/5.0.6Netlabs/.tmp_out E:/5.0.6Netlabs/.tmp_src.cc "-lpthread"
ilink.exe: No such file or directory

Something is screwed up, I don't think ./configure needs ilink.exe!
Have I left something out? I preformed the entire Development Setup as specified using YUM (pthread & pthread.devel included).

Here's the portion of configure that looks like possibly is causing the problem?

YASM="yasm"
IASL="iasl"
XSLTPROC="xsltproc"
GENISOIMAGE="genisoimage"
MKISOFS="mkisofs"
INCCRYPTO=""
LIBCRYPTO="-lssl -lcrypto"
LIBPTHREAD="-lpthread"
LIBCAP="-lcap"
GSOAP=""

Also, I don't understand the “grep: invalid back reference “ statement in the Start-up script, could this be causing my problem?

Thanks for any ideas dickk

Change History (13)

comment:1 by dmik, 9 years ago

It seems that your tool chain installation is broken so ILINK is used instead of WLINK. Do you have the gcc-wlink package installed? If so, do you have SET EMXOMFLD_LINKER=wl.exe and SET EMXOMFLD_TYPE=WLINK in your CONFIG.SYS?

Last edited 9 years ago by dmik (previous) (diff)

comment:2 by dickk, 9 years ago

Adding those two lines to config.sys resolved the problem with pthread, now libxml2 version 2.7.7 seems to have problems!

Checking for gcc: found version 4.9.2, OK.
Checking for Open Watcom: found version 1.9, OK.
Checking for iasl: found version 20131115, OK.
Checking for xslt: found, OK.
Checking for mkisofs: found mkisofs 2.01.01a59 (i386-pc-os2_emx) Copyright (C) 1
993-1997 Eric Youngdale (C) 1997-2009 J÷rg Schilling, OK.
Checking for pthread: found, OK.
Checking for libxml2: E:/USR/BIN/xml2-config
found version 2.7.7, OK.

xml2 not found at -L/@unixroot/usr/lib -lxml2 -lz -lpthread -lm -lurpo -lmmap

-lpthread -lpthread -I/@unixroot/usr/include/libxml2 or xml2 headers not found

Check the file E:/5.0.6Netlabs/configure.log for detailed error information.

Check E:/5.0.6Netlabs/configure.log for details
#

# Log file generated by
#
# './configure --with-ow-dir=E:/WATCOM --enable-vnc --disable-docs'
#

* Checking environment *
Determined build machine: os2.x86, target machine: os2.x86

* Checking kBuild *
found

* Checking gcc *
found version 4.9.2

* Checking Open Watcom *
found version 1.9

* Checking iasl *
found version 20131115

* Checking xslt *
found

* Checking mkisofs *
found mkisofs 2.01.01a59 (i386-pc-os2_emx) Copyright (C) 1993-1997 Eric Youngdale (C) 1997-2009 J÷rg Schilling

* Checking pthread *
compiling the following source file:
#include <cstdio>
#include <pthread.h>
extern "C" int main(void)
{

pthread_mutex_t mutex;
if (pthread_mutex_init(&mutex, NULL)) {

printf("pthread_mutex_init() failed\n");
return 1;

}
if (pthread_mutex_lock(&mutex)) {

printf("pthread_mutex_lock() failed\n");
return 1;

}
if (pthread_mutex_unlock(&mutex)) {

printf("pthread_mutex_unlock() failed\n");
return 1;

}
printf("found, OK.\n");

}
using the following command line:
g++ -Zomf -g -O -Wall -o E:/5.0.6Netlabs/.tmp_out E:/5.0.6Netlabs/.tmp_src.cc "-lpthread"
executing the binary
found, OK.

* Checking libxml2 *
found version 2.7.7

compiling the following source file:
#include <cstdio>
#include <libxml/xmlversion.h>
extern "C" int main(void)
{

printf("found version %s", LIBXML_DOTTED_VERSION);

#if LIBXML_VERSION >= 20626

printf(", OK.\n");
return 0;

#else

printf(", expected version 2.6.26 or higher\n");
return 1;

#endif
}
using the following command line:
g++ -Zomf -g -O -Wall -o E:/5.0.6Netlabs/.tmp_out E:/5.0.6Netlabs/.tmp_src.cc "-L/@unixroot/usr/lib -lxml2 -lz -lpthread -lm -lurpo -lmmap -lpthread -lpthread -I/@unixroot/usr/include/libxml2"
weakld: cannot open library file '\@unixroot\usr\lib\z_s.a'.
emxomfld: weak prelinker failed. (rc=8)

comment:3 by Valery V. Sedletski, 9 years ago

did you installed libxml2-devel ? libz-devel ?

comment:4 by dickk, 9 years ago

yes, they both are installed:
libxml2-devel 2.7.7-5
zlib-devel 1.2.5-5

comment:5 by Valery V. Sedletski, 9 years ago

Please try do remove zlib-devel package, and install it again. It says,

weakld: cannot open library file '\@unixroot\usr\lib\z_s.a'.

(the lib is called libz_s.a actually) -- or check that e:\usr\lib\libz_s.a is present on the disk.

comment:6 by dickk, 9 years ago

Removing and re-installing zlib-devel resulted in a different error:

Checking for pthread: found, OK.
Checking for libxml2:

neither pkg-config nor xml2-config found!

Check E:/5.0.6Netlabs/configure.log for details
#

and configure log says the same thing:

* Checking libxml2 *

neither pkg-config nor xml2-config found!

There is no libz_s.a in e:\usr\lib

This looks now, like its looking for Linux package?

comment:7 by diver, 9 years ago

Priority: minorFeedback pending

how did you install the requirements? by yum/rpm or by hand? As it really seems your env is broken.

comment:8 by dickk, 9 years ago

requirements were installed by using yum/rpm as included in install of eCS 2.2bII. Probably the requirements as listed in Netlabs need updating as the required changes to config.sys mentioned by dmik which allows pthread to compile using wlink.exe rather than ilink.exe without errors is not mentioned. Possibly there are other needed requirements?

comment:9 by Valery V. Sedletski, 9 years ago

did you updated the dependencies? Packages from eCS 2.2 may be old

yum update

and, is pkg-config installed?

yum install pkgconfig

comment:10 by dmik, 9 years ago

@dickk, regarding config.sys changes, you should not have to do it manually! The command yum install gcc-wlink should have done it for you. If it haven't then you really have a broken RPM env. Please try to update as suggested by @valerius.

comment:11 by dickk, 9 years ago

dmik:yum install gcc-wlink worked- thanks!
@valerius:yum update
[E:\]yum update
Setting up Update Process
No Packages marked for Update
yum install pkconfig
[E:\]yum install pkgconfig
Setting up Install Process
Package 1:pkgconfig-0.25-4.oc00.i686 already installed and latest version
Nothing to do

I tthought I'd figured out the problem -- maybe you use the i686 version of the required packages?, so I switched to them! All went well till I did:
[E:\]yum install libxml2
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libxml2.i686 0:2.7.7-5.oc00 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

================================================================================

Installing:

libxml2 i686 2.7.7-5.oc00 netlabs-rel 976 k

Transaction Summary
================================================================================

Install 1 Package

Total size: 976 k
Installed size: 976 k
Is this ok [y/N]:y

Install 1 Package

Total size: 976 k
Installed size: 976 k
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Check
Running Transaction Test

Transaction Check Error:

package libxml2-2.7.7-5.oc00.i686 is already installed
file /@unixroot/usr/bin/xmlcatalog.exe from install of libxml2-2.7.7-5.oc00.i6

86 conflicts with file from package libxml2-2.7.7-5.oc00.i386

file /@unixroot/usr/bin/xmllint.exe from install of libxml2-2.7.7-5.oc00.i686

conflicts with file from package libxml2-2.7.7-5.oc00.i386

file /@unixroot/usr/lib/libxml2.dll from install of libxml2-2.7.7-5.oc00.i686

conflicts with file from package libxml2-2.7.7-5.oc00.i386

Error Summary


And now still the same error in configure script:
# ./configure --with-ow-dir=$WATCOM --enable-vnc --disable-docs --out-path=/VBO
X
Checking for environment: Determined build machine: os2.x86, target machine: os2
.x86, OK.
Checking for kBuild: found, OK.
grep: Invalid back reference
Checking for gcc: found version 4.9.2, OK.
Checking for Open Watcom: found version 1.9, OK.
Checking for iasl: found version 20131115, OK.
Checking for xslt: found, OK.
Checking for mkisofs: found mkisofs 2.01.01a59 (i386-pc-os2_emx) Copyright (C) 1
993-1997 Eric Youngdale (C) 1997-2009 J÷rg Schilling, OK.
Checking for pthread: found, OK.
Checking for libxml2:

libxml2 not found!

Check /VBOX/configure.log for details
#

I give up! (yum/rpm has done me in!) Thank you both for you're help, I'm sure you have better ways to spend you're time, so I'll not bother you anymore.
@valerius: Thank you especially, for all the hard work you have put in compiling Virtualbox! It looks like you are getting close to workable version we all can use.

comment:12 by diver, 9 years ago

Resolution: worksforme
Status: newclosed

as you gave up I close the ticket. I have no idea how your build env looks like, but you can be sure all builds out of the box. We all use it.
Anyway a preview should be available rather soon now.

comment:13 by Valery V. Sedletski, 9 years ago

2dickk: If you need other arch than i386, you need to reinstall the yum/rpm environment (first delete your current \var and \usr trees, and install the bootstrap .WPI package: http://rpm.netlabs.org/bootstrap/rpm-yum-bootstrap-1_5-p4.wpi, then start the yum shell and follow the directions it gives)

Note: See TracTickets for help on using tickets.