473,406 Members | 2,378 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

VC++ 2005 beta1 fails with pthreads benchmark tests

um
When the POSIX pthreads library for w32 release 2-2-0
(http://sources.redhat.com/pthreads-win32/) is compiled with VC++6
then it compiles and passes all the benchmark tests in the subdirectory "tests".
Also, VC++ 2005 beta 1 compiles the tests fine, but here the following
tests fail in execution:

# semaphore1.pass \
# condvar2.pass \
# condvar2_1.pass \
# mutex8.pass \
# mutex8n.pass \
# mutex8e.pass \
# mutex8r.pass \
# condvar3.pass \
# condvar3_1.pass \
# condvar3_2.pass \
# condvar3_3.pass \
# condvar4.pass \
# condvar5.pass \
# condvar6.pass \
# condvar7.pass \
# condvar8.pass \
# condvar9.pass \
# rwlock7.pass \
# rwlock8.pass \
# rwlock2_t.pass \
# rwlock3_t.pass \
# rwlock4_t.pass \
# rwlock5_t.pass \
# rwlock6_t.pass \
# rwlock6_t2.pass \
# spin4.pass \

Why are there such differences in execution of the generated code
between VC++6 and VC++2005 ? Is this due to bugs in the beta1,
or is this the result of general differences between the two products?
Are there any compiler/linker switches for backwards "compatibility" to VC++6?
Nov 17 '05 #1
2 2256
um wrote:
When the POSIX pthreads library for w32 release 2-2-0
(http://sources.redhat.com/pthreads-win32/) is compiled with VC++6
then it compiles and passes all the benchmark tests in the
subdirectory "tests". Also, VC++ 2005 beta 1 compiles the tests fine,
but here the following
tests fail in execution:

# semaphore1.pass \
# condvar2.pass \
# condvar2_1.pass \
# mutex8.pass \
# mutex8n.pass \
# mutex8e.pass \
# mutex8r.pass \
# condvar3.pass \
# condvar3_1.pass \
# condvar3_2.pass \
# condvar3_3.pass \
# condvar4.pass \
# condvar5.pass \
# condvar6.pass \
# condvar7.pass \
# condvar8.pass \
# condvar9.pass \
# rwlock7.pass \
# rwlock8.pass \
# rwlock2_t.pass \
# rwlock3_t.pass \
# rwlock4_t.pass \
# rwlock5_t.pass \
# rwlock6_t.pass \
# rwlock6_t2.pass \
# spin4.pass \

Why are there such differences in execution of the generated code
between VC++6 and VC++2005 ? Is this due to bugs in the beta1,
or is this the result of general differences between the two products?
Are there any compiler/linker switches for backwards "compatibility"
to VC++6?


You're going to need to post a lot more details to get a satisfying answer,
unless a pthreads-win32 expert happens to read this newsgroup.

I'd suggest examining a single failure in depth with the goal of producing a
simple small program that behaves differently on VC6 versus VC8 beta 1 (also
note that beta 2 was released lasts Friday).

-cd
Nov 17 '05 #2
um
"Carl Daniel [VC++ MVP]" wrote
um wrote:
When the POSIX pthreads library for w32 release 2-2-0
(http://sources.redhat.com/pthreads-win32/) is compiled with VC++6
then it compiles and passes all the benchmark tests in the
subdirectory "tests". Also, VC++ 2005 beta 1 compiles the tests fine,
but here the following
tests fail in execution:

# semaphore1.pass \
# condvar2.pass \
# condvar2_1.pass \
# mutex8.pass \
# mutex8n.pass \
# mutex8e.pass \
# mutex8r.pass \
# condvar3.pass \
# condvar3_1.pass \
# condvar3_2.pass \
# condvar3_3.pass \
# condvar4.pass \
# condvar5.pass \
# condvar6.pass \
# condvar7.pass \
# condvar8.pass \
# condvar9.pass \
# rwlock7.pass \
# rwlock8.pass \
# rwlock2_t.pass \
# rwlock3_t.pass \
# rwlock4_t.pass \
# rwlock5_t.pass \
# rwlock6_t.pass \
# rwlock6_t2.pass \
# spin4.pass \

Why are there such differences in execution of the generated code
between VC++6 and VC++2005 ? Is this due to bugs in the beta1,
or is this the result of general differences between the two products?
Are there any compiler/linker switches for backwards "compatibility"
to VC++6?


You're going to need to post a lot more details to get a satisfying answer,
unless a pthreads-win32 expert happens to read this newsgroup.

I'd suggest examining a single failure in depth with the goal of producing a
simple small program that behaves differently on VC6 versus VC8 beta 1 (also
note that beta 2 was released lasts Friday).


Here is the result of the compile and test execution process for VC++2005.
I have appended also the code location of the first failed test (semaphore1.c).
As said, VC++6 compiles and passes all tests, whereas VC++2005 fails
with many of the tests.

---
Setting environment for using Microsoft Visual Studio 2005 tools.
(If you have another version of Visual Studio or Visual C++ installed and wish
to use its tools from the command line, run vsvars32.bat for that version.)

E:\>cd F:\FILES\Thread_Programming\pthreads\MyTests\tests

E:\>f:

F:\FILES\Thread_Programming\pthreads\MyTests\tests >nmake clean VC

Microsoft (R) Program Maintenance Utility Version 8.00.40607.16
Copyright (C) Microsoft Corporation. All rights reserved.

erase *.dll
erase *.lib
erase pthread.h
erase semaphore.h
erase sched.h
erase *.e
Could Not Find F:\FILES\Thread_Programming\pthreads\MyTests\tests \*.e
erase *.i
Could Not Find F:\FILES\Thread_Programming\pthreads\MyTests\tests \*.i
erase *.obj
erase *.pdb
erase *.o
Could Not Find F:\FILES\Thread_Programming\pthreads\MyTests\tests \*.o
erase *.asm
Could Not Find F:\FILES\Thread_Programming\pthreads\MyTests\tests \*.asm
erase *.exe
erase *.pass
erase *.bench
Could Not Find F:\FILES\Thread_Programming\pthreads\MyTests\tests \*.bench
erase *.log
Could Not Find F:\FILES\Thread_Programming\pthreads\MyTests\tests \*.log

Microsoft (R) Program Maintenance Utility Version 8.00.40607.16
Copyright (C) Microsoft Corporation. All rights reserved.

Copying pthreadVC2.lib
1 file(s) copied.
Copying pthreadVC2.dll
1 file(s) copied.
Copying pthread.h
1 file(s) copied.
Copying semaphore.h
1 file(s) copied.
Copying sched.h
1 file(s) copied.
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. sizes.c /Fesizes.exe
/link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be
removed in a future release
sizes.c
NMAKE : warning U4004: too many rules for target 'sizes.pass'
.... Running VC2 test: sizes.exe
Sizes of pthreads-win32 structs
-------------------------------
pthread_t 8
ptw32_thread_t 136
pthread_attr_t_ 28
sem_t_ 12
pthread_mutex_t_ 24
pthread_mutexattr_t_ 8
pthread_spinlock_t_ 8
pthread_barrier_t_ 24
pthread_barrierattr_t_ 4
pthread_key_t_ 16
pthread_cond_t_ 32
pthread_condattr_t_ 4
pthread_rwlock_t_ 28
pthread_rwlockattr_t_ 4
pthread_once_t_ 16
ptw32_cleanup_t 12
sched_param 4
-------------------------------
....... Passed
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. loadfree.c
/Feloadfree.exe /link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be
removed in a future release
loadfree.c
1 file(s) copied.
1 file(s) copied.
.... Running VC test: loadfree.exe
....... Passed
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. self1.c /Feself1.exe
/link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be
removed in a future release
self1.c
.... Running VC test: self1.exe
....... Passed
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. mutex5.c /Femutex5.exe
/link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be
removed in a future release
mutex5.c
.... Running VC test: mutex5.exe
....... Passed
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. mutex1.c /Femutex1.exe
/link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be
removed in a future release
mutex1.c
.... Running VC test: mutex1.exe
....... Passed
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. mutex1n.c
/Femutex1n.exe /link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be rem
oved in a future release
mutex1n.c
.... Running VC test: mutex1n.exe
....... Passed
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. mutex1e.c
/Femutex1e.exe /link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be
removed in a future release
mutex1e.c
.... Running VC test: mutex1e.exe
....... Passed
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. mutex1r.c
/Femutex1r.exe /link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be
removed in a future release
mutex1r.c
.... Running VC test: mutex1r.exe
....... Passed
cl /D__CLEANUP_C /O2 /Ob0 /W3 /WX /MD /nologo /Yd /Zi -I. semaphore1.c
/Fesemaphore1.exe /link /INCREMENTAL:NO pthreadVC2.lib ws2_32.lib
cl : Command line warning D9035 : option 'Yd' has been deprecated and will be
removed in a future release
semaphore1.c
.... Running VC test: semaphore1.exe
thread: sem_trywait 1: expected error: No error
Assertion failed: (errno == EAGAIN), file semaphore1.c, line 89
NMAKE : fatal error U1077: '.\semaphore1.exe' : return code '0x1'
Stop.
NMAKE : fatal error U1077: 'nmake' : return code '0x2'
Stop.
--

The first error happens with semaphore1.exe (semaphore1.c line 89):

void *
thr(void * arg)
{
sem_t s;
int result;

assert(sem_init(&s, PTHREAD_PROCESS_PRIVATE, 0) == 0);

assert((result = sem_trywait(&s)) == -1);

if ( result == -1 )
{
perror("thread: sem_trywait 1: expected error"); // No error
assert(errno == EAGAIN);
It is the last assert which fails in the first of the failing test programs.
Nov 17 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

12
by: mysteron | last post by:
i have vc 2003 installed on my dev machine and was wondering if I can install 2005 beta 2 on the same machine and have both working perfectly and not interfering with each other? TIA
6
by: nick | last post by:
i haven't learnt c++ before ,if i want to learn vc++,do i need to buy a c++ book to learn before i learn vc++? or some vc++ books are suitable to someone who hasn't learnt c++ before? any...
2
by: Jack | last post by:
hi all I would find a parallel sorting algorithms written with pthread programs, as a benchmark to run. Any pointing will be of help thankyou in advance
1
by: Joannes Vermorel | last post by:
Hi, I just give a try at VS2005 Beta1 (for C#). I have try to import a simple C# project (MathNet.Numerics, http://nmath.sourceforge.net). The conversion from VS7.1 to VS8 went without any...
7
by: Rachete | last post by:
Can any one give me a couple of good reasons (advantages) to use VC++ 2005 versus using VC# 2005 (especially for a middle tier component development)? rachete.
5
by: Adriano Coser | last post by:
Hello. I've just finished the compilation of my application with VC 2005 Beta 2 (Express edition) and I'm getting the following initialization error loading one of my DLLs: LDR:...
42
by: Paul | last post by:
Anyone know where I can find some good resources to help us choose between SQL and Oracle ( Progress Openedge as well ) . Any comments on what you would choose ?? We are creating a new Warehouse...
36
by: Alex Martelli | last post by:
So, I thought I'd tool up to let me build and test Python extensions on Windows (as well as Mac and Linux) -- I'm trying out Parallels Workstation beta on my new Macbook Pro (and so far it seems to...
7
by: Norman Diamond | last post by:
A project depends on VC runtime from Visual Studio 2005 SP1, and DotNet Framework 2. Options are set in the setup project properties, so if these two dependencies are not already installed then...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.