public inbox for pthreads-win32@sourceware.org
 help / color / mirror / Atom feed
* Borland Builder
@ 2003-06-20 15:18 Francisco Vinotinto
  0 siblings, 0 replies; 6+ messages in thread
From: Francisco Vinotinto @ 2003-06-20 15:18 UTC (permalink / raw)
  To: pthreads-win32

Is it possible to use this library with Borland
Builder?

Thanks in advance.

___________________________________________________
Yahoo! Sorteos  -  http://loteria.yahoo.es
Juega a la Lotería Primitiva sin salir de casa

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Borland Builder
  2003-07-18  7:22 ` Dr. Michael Heitland (caatoosee ag)
@ 2003-07-21  5:51   ` Will Bryant
  0 siblings, 0 replies; 6+ messages in thread
From: Will Bryant @ 2003-07-21  5:51 UTC (permalink / raw)
  To: pthreads-win32

> I did already the port to generate a static BCB6 library.

I can't use it as a static library due to LGPL, unfortunately.

I'll try and do a full makefile so it can be put into the distro.

> - modify the following sources as I have attached: 'pthread.c',
> 'need_errno.h' and  ''ptw32_InterlockedCompareExchange.c'

Do you realise that you can define the two missing errno constants using
defines set in the project?

Also, the ''ptw32_InterlockedCompareExchange.c" and
"''ptw32_InterlockedCompareExchange.c.orig" you sent to the list are
identical...  in any case, I just copied the MASM 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Borland Builder
  2003-07-18  2:29 Will Bryant
@ 2003-07-18  7:22 ` Dr. Michael Heitland (caatoosee ag)
  2003-07-21  5:51   ` Will Bryant
  0 siblings, 1 reply; 6+ messages in thread
From: Dr. Michael Heitland (caatoosee ag) @ 2003-07-18  7:22 UTC (permalink / raw)
  To: Will Bryant, Francisco Vinotinto; +Cc: pthreads-win32

[-- Attachment #1: Type: text/plain, Size: 2158 bytes --]

Hello,

I did already the port to generate a static BCB6 library.
- create a new project 'pthreads_bcb6' for a static library
- set compiler switch (= preprocessor #define) NEED_ERRNO;NEED_FTIME
- set all warnings but not 8004 and 8057
- choose release target
- modify the following sources as I have attached: 'pthread.c',
'need_errno.h' and  ''ptw32_InterlockedCompareExchange.c'

Greetings,
Dr. Michael Heitland

----- Original Message ----- 
From: "Will Bryant" <will.bryant@ecosm.com>
To: "Francisco Vinotinto" <fvinotinto@yahoo.es>
Cc: <pthreads-win32@sources.redhat.com>
Sent: Friday, July 18, 2003 4:30 AM
Subject: Re: Borland Builder


> Hi Francisco,
>
> > Is it possible to use this library with Borland
> > Builder?
>
> I assume you mean C++Builder: Yes it is.
>
> As a quick and dirty solution you can use the MSVC dll, pthreadVC.dll, but
> you need to generate an import library for use with the Borland compiler.
> To do this just go into the pre-built directory and run:
>
> impdef -a pthreadBC.def pthreadBC.dll
> implib pthreadBC.lib pthreadBC.def
>
> You'll prolly need to move or copy the .lib somewhere else, the C++Builder
5
> IDE doesn't seem to like linking libraries from directories with hyphens
in
> them.
>
>
> This is enough to get you started and does seem to work ok.  However, from
> what I understand, it's not a 'correct' solution because that DLL is
linked
> against the MSVC C runtime library, and that's not compatible with the
> Borland runtime.  As such IMHO it's quite surprising that it runs so well.
>
> I'm working on a proper port right now so that you can build it with
> C++Builder, hopefully I'll be mailing the list about that sometime in the
> next week - mainly it just requires a new makefile and a couple of small
> changes elsewhere.
>
> So if you're thinking of using pthreads-win32 with the Borland tools then
> use the quick solution above for now and keep an eye out for the
forthcoming
> port work, which fingers crossed the maintainers will accept into the next
> release.
>
> Cheers,
> Will
>
> --
> Will Bryant
> Systems Architect, eCOSM Limited
> Phone +64 3 365 4176
> http://www.ecosm.com/
>
>

[-- Attachment #2: pthreads_bcb6.bpr --]
[-- Type: application/octet-stream, Size: 3136 bytes --]

<?xml version='1.0' encoding='utf-8' ?>
<!-- C++Builder XML Project -->
<PROJECT>
  <MACROS>
    <VERSION value="BCB.06.00"/>
    <PROJECT value="pthreads_bcb6.lib"/>
    <OBJFILES value="pthread.obj"/>
    <RESFILES value=""/>
    <DEFFILE value=""/>
    <RESDEPEN value="$(RESFILES)"/>
    <LIBFILES value=""/>
    <LIBRARIES value=""/>
    <PACKAGES value=""/>
    <PATHCPP value=".;"/>
    <PATHPAS value=".;"/>
    <PATHRC value=".;"/>
    <PATHASM value=".;"/>
    <LINKER value="TLib"/>
    <USERDEFINES value="NEED_ERRNO;NEED_FTIME"/>
    <SYSDEFINES value="_RTLDLL;NO_STRICT"/>
    <MAINSOURCE value="pthreads_bcb6.bpf"/>
    <INCLUDEPATH value="D:\Programme\pthreads-snap-2003-5-10\pthreads;$(BCB)\include;$(BCB)\include\vcl"/>
    <LIBPATH value="&quot;D:\Programme\pthreads-snap-2003-5-10\pthreads&quot;;$(BCB)\lib\obj;$(BCB)\lib"/>
    <WARNINGS value="-w8092 -w8091 -w8090 -w8089 -w8087 -wprc -wuse -wucp -wstv -wstu -wsig 
      -wpin -w-par -wnod -wnak -wdef -wcln -wbbf -w-aus -wasm -wamp -wamb"/>
    <LISTFILE value=""/>
    <OTHERFILES value=""/>
  </MACROS>
  <OPTIONS>
    <CFLAG1 value="-O2 -Vx -Ve -X- -a8 -b -k- -vi -c -tW -tWM"/>
    <PFLAGS value="-$Y- -$L- -$D- -$A8 -v -JPHNE -M"/>
    <AFLAGS value="/mx /w2 /zn"/>
    <LFLAGS value=""/>
    <OTHERFILES value=""/>
  </OPTIONS>
  <LINKER>
    <ALLOBJ value="$(OBJFILES)"/>
    <ALLLIB value=""/>
    <OTHERFILES value=""/>
  </LINKER>
  <FILELIST>
      <FILE FILENAME="pthreads_bcb6.bpf" FORMNAME="" UNITNAME="pthreads_bcb6" CONTAINERID="BPF" DESIGNCLASS="" LOCALCOMMAND=""/>
      <FILE FILENAME="pthread.c" FORMNAME="" UNITNAME="pthread" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
  </FILELIST>
  <BUILDTOOLS>
  </BUILDTOOLS>

  <IDEOPTIONS>
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1031
CodePage=1252

[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=

[HistoryLists\hlIncludePath]
Count=1
Item0=D:\Programme\pthreads-snap-2003-5-10\pthreads;$(BCB)\include;$(BCB)\include\vcl

[HistoryLists\hlLibraryPath]
Count=1
Item0=D:\Programme\pthreads-snap-2003-5-10\pthreads;$(BCB)\lib\obj;$(BCB)\lib

[HistoryLists\hlDebugSourcePath]
Count=1
Item0=$(BCB)\source\vcl

[HistoryLists\hlConditionals]
Count=8
Item0=NEED_ERRNO;NEED_FTIME
Item1=PTW32_BUILD;NEED_ERRNO;NEED_FTIME;_DLL
Item2=PTW32_BUILD;NEED_ERRNO;NEED_FTIME
Item3=_DEBUG__CLEANUP_C;PTW32_BUILD;NEED_ERRNO;NEED_FTIME
Item4=_DEBUG__CLEANUP_C;PTW32_BUILD;NEED_ERRNO;NEED_TIME
Item5=_DEBUG__CLEANUP_C;PTW32_BUILD;NEED_ERRNO
Item6=_DEBUG__CLEANUP_C;PTW32_BUILD
Item7=_DEBUG

[Debugging]
DebugSourceDirs=$(BCB)\source\vcl

[Parameters]
RunParams=
Launcher=
UseLauncher=0
DebugCWD=
HostApplication=
RemoteHost=
RemotePath=
RemoteLauncher=
RemoteCWD=
RemoteDebug=0

[Compiler]
ShowInfoMsgs=0
LinkDebugVcl=0
LinkCGLIB=0
  </IDEOPTIONS>
</PROJECT>

[-- Attachment #3: need_errno.h --]
[-- Type: text/plain, Size: 3234 bytes --]

/***
* errno.h - system wide error numbers (set by system calls)
*
*       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
*
* Purpose:
*       This file defines the system-wide error numbers (set by
*       system calls).  Conforms to the XENIX standard.  Extended
*       for compatibility with Uniforum standard.
*       [System V]
*
*       [Public]
*
****/

#if     _MSC_VER > 1000
#pragma once
#endif

#ifndef _INC_ERRNO
#define _INC_ERRNO

#if     !defined(_WIN32) && !defined(_MAC)
#error ERROR: Only Mac or Win32 targets supported!
#endif

#include <winsock.h>

#ifdef __BORLANDC__ /* TWAH */
#include <errno.h>
#endif // __BORLANDC__ /* TWAH */

#ifdef  __cplusplus
extern "C" {
#endif



/* Define _CRTIMP */

#ifndef _CRTIMP
#ifdef  _DLL
#define _CRTIMP __declspec(dllimport)
#else   /* ndef _DLL */
#define _CRTIMP
#endif  /* _DLL */
#endif  /* _CRTIMP */


/* Define __cdecl for non-Microsoft compilers */

#if     ( !defined(_MSC_VER) && !defined(__cdecl) )
#define __cdecl
#endif

/* Define _CRTAPI1 (for compatibility with the NT SDK) */

#ifndef _CRTAPI1
#if	_MSC_VER >= 800 && _M_IX86 >= 300
#define _CRTAPI1 __cdecl
#else
#define _CRTAPI1
#endif
#endif


/* declare reference to errno */

#if     (defined(_MT) || defined(_MD) || defined(_DLL)) && !defined(_MAC)
#ifndef __BORLANDC__ /* TWAH */
_CRTIMP extern int * __cdecl _errno(void);
#define errno   (*_errno())
#endif // ndef __BORLANDC__ /* TWAH */
#else   /* ndef _MT && ndef _MD && ndef _DLL */
_CRTIMP extern int errno;
#endif  /* _MT || _MD || _DLL */

/* Error Codes */
#ifndef __BORLANDC__ /* TWAH */
#define EPERM           1
#define ENOENT          2
#define ESRCH           3
#define EINTR           4
#define EIO             5
#define ENXIO           6
#define E2BIG           7
#define ENOEXEC         8
#define EBADF           9
#define ECHILD          10
#define EAGAIN          11
#define ENOMEM          12
#define EACCES          13
#define EFAULT          14
#define EBUSY           16
#define EEXIST          17
#define EXDEV           18
#define ENODEV          19
#define ENOTDIR         20
#define EISDIR          21
#define EINVAL          22
#define ENFILE          23
#define EMFILE          24
#define ENOTTY          25
#define EFBIG           27
#define ENOSPC          28
#define ESPIPE          29
#define EROFS           30
#define EMLINK          31
#define EPIPE           32
#define EDOM            33
#define ERANGE          34
#endif __BORLANDC__ /* TWAH */
#define EDEADLK         36

/* defined differently in winsock.h on WinCE */
#ifndef __BORLANDC__ /* TWAH */
#ifndef ENAMETOOLONG
#define ENAMETOOLONG    38
#endif
#endif __BORLANDC__ /* TWAH */

#define ENOLCK          39
#define ENOSYS          40

/* defined differently in winsock.h on WinCE */
#ifndef __BORLANDC__ /* TWAH */
#ifndef ENOTEMPTY
#define ENOTEMPTY       41
#endif

#define EILSEQ          42

/*
 * Support EDEADLOCK for compatibiity with older MS-C versions.
 */
#define EDEADLOCK       EDEADLK
#endif __BORLANDC__ /* TWAH */

#ifdef  __cplusplus
}
#endif

#endif  /* _INC_ERRNO */

[-- Attachment #4: pthreads_bcb6.lib --]
[-- Type: application/octet-stream, Size: 44544 bytes --]

[-- Attachment #5: ptw32_InterlockedCompareExchange.c --]
[-- Type: text/plain, Size: 3401 bytes --]

/*
 * ptw32_InterlockedCompareExchange.c
 *
 * Description:
 * This translation unit implements routines which are private to
 * the implementation and may be used throughout it.
 *
 * --------------------------------------------------------------------------
 *
 *      Pthreads-win32 - POSIX Threads Library for Win32
 *      Copyright(C) 1998 John E. Bossom
 *      Copyright(C) 1999,2002 Pthreads-win32 contributors
 * 
 *      Contact Email: rpj@ise.canberra.edu.au
 * 
 *      The current list of contributors is contained
 *      in the file CONTRIBUTORS included with the source
 *      code distribution. The list can also be seen at the
 *      following World Wide Web location:
 *      http://sources.redhat.com/pthreads-win32/contributors.html
 * 
 *      This library is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU Lesser General Public
 *      License as published by the Free Software Foundation; either
 *      version 2 of the License, or (at your option) any later version.
 * 
 *      This library is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *      Lesser General Public License for more details.
 * 
 *      You should have received a copy of the GNU Lesser General Public
 *      License along with this library in the file COPYING.LIB;
 *      if not, write to the Free Software Foundation, Inc.,
 *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 */

#include "pthread.h"
#include "implement.h"


/*
 * ptw32_InterlockedCompareExchange --
 *
 * Needed because W95 doesn't support InterlockedCompareExchange.
 * It is only used when running the dll on W95. Other versions of
 * Windows use the Win32 supported version, which may be running on
 * different processor types.
 *
 * This can't be inlined because we need to know it's address so that
 * we can call it through a pointer.
 */
PTW32_INTERLOCKED_LONG WINAPI
ptw32_InterlockedCompareExchange(PTW32_INTERLOCKED_LPLONG location,
				 PTW32_INTERLOCKED_LONG   value,
				 PTW32_INTERLOCKED_LONG   comparand)
{
  PTW32_INTERLOCKED_LONG result = 0; // MHEI: War vorher nicht initial.

#if defined(_M_IX86) || defined(_X86_)

#if defined(_MSC_VER)

  _asm {
    PUSH	 ecx
    PUSH	 edx
    MOV 	 ecx,dword ptr [location]
    MOV 	 edx,dword ptr [value]
    MOV 	 eax,dword ptr [comparand]
    LOCK CMPXCHG dword ptr [ecx],edx	    ; if (EAX == [ECX]),
					    ;	[ECX] = EDX
					    ; else
					    ;	EAX = [ECX]
    MOV 	 dword ptr [result], eax
    POP 	 edx
    POP 	 ecx
  }

#elif defined(__GNUC__)

  __asm__
    (
     "lock\n\t"
     "cmpxchgl	     %3,(%0)"	 /* if (EAX == [location]), */
				 /*   [location] = value    */
				 /* else		    */
				 /*   EAX = [location]		 */
     :"=r" (location), "=a" (result)
     :"0"  (location), "q" (value), "a" (comparand)
     : "memory" );

#endif

#else

  /*
   * If execution gets to here then we should be running on a Win95 system
   * but either running on something other than an X86 processor, or a
   * compiler other than MSVC or GCC. Pthreads-win32 doesn't support that
   * platform (yet).
   */

  result = 0;

#endif

  return result;
}

[-- Attachment #6: pthreads_bcb6.bpf --]
[-- Type: application/octet-stream, Size: 240 bytes --]

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#define Library

// Um der Bibliothek eine Datei hinzuzufügen, wählen Sie im Menü 'Projekt' 'Zum Projekt hinzufügen'.

 

[-- Attachment #7: need_errno.h.orig --]
[-- Type: application/octet-stream, Size: 2879 bytes --]

/***
* errno.h - system wide error numbers (set by system calls)
*
*       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
*
* Purpose:
*       This file defines the system-wide error numbers (set by
*       system calls).  Conforms to the XENIX standard.  Extended
*       for compatibility with Uniforum standard.
*       [System V]
*
*       [Public]
*
****/

#if     _MSC_VER > 1000
#pragma once
#endif

#ifndef _INC_ERRNO
#define _INC_ERRNO

#if     !defined(_WIN32) && !defined(_MAC)
#error ERROR: Only Mac or Win32 targets supported!
#endif

#include <winsock.h>

#ifdef  __cplusplus
extern "C" {
#endif



/* Define _CRTIMP */

#ifndef _CRTIMP
#ifdef  _DLL
#define _CRTIMP __declspec(dllimport)
#else   /* ndef _DLL */
#define _CRTIMP
#endif  /* _DLL */
#endif  /* _CRTIMP */


/* Define __cdecl for non-Microsoft compilers */

#if     ( !defined(_MSC_VER) && !defined(__cdecl) )
#define __cdecl
#endif

/* Define _CRTAPI1 (for compatibility with the NT SDK) */

#ifndef _CRTAPI1
#if	_MSC_VER >= 800 && _M_IX86 >= 300
#define _CRTAPI1 __cdecl
#else
#define _CRTAPI1
#endif
#endif


/* declare reference to errno */

#if     (defined(_MT) || defined(_MD) || defined(_DLL)) && !defined(_MAC)
_CRTIMP extern int * __cdecl _errno(void);
#define errno   (*_errno())
#else   /* ndef _MT && ndef _MD && ndef _DLL */
_CRTIMP extern int errno;
#endif  /* _MT || _MD || _DLL */

/* Error Codes */

#define EPERM           1
#define ENOENT          2
#define ESRCH           3
#define EINTR           4
#define EIO             5
#define ENXIO           6
#define E2BIG           7
#define ENOEXEC         8
#define EBADF           9
#define ECHILD          10
#define EAGAIN          11
#define ENOMEM          12
#define EACCES          13
#define EFAULT          14
#define EBUSY           16
#define EEXIST          17
#define EXDEV           18
#define ENODEV          19
#define ENOTDIR         20
#define EISDIR          21
#define EINVAL          22
#define ENFILE          23
#define EMFILE          24
#define ENOTTY          25
#define EFBIG           27
#define ENOSPC          28
#define ESPIPE          29
#define EROFS           30
#define EMLINK          31
#define EPIPE           32
#define EDOM            33
#define ERANGE          34
#define EDEADLK         36

/* defined differently in winsock.h on WinCE */
#ifndef ENAMETOOLONG
#define ENAMETOOLONG    38
#endif

#define ENOLCK          39
#define ENOSYS          40

/* defined differently in winsock.h on WinCE */
#ifndef ENOTEMPTY
#define ENOTEMPTY       41
#endif

#define EILSEQ          42

/*
 * Support EDEADLOCK for compatibiity with older MS-C versions.
 */
#define EDEADLOCK       EDEADLK

#ifdef  __cplusplus
}
#endif

#endif  /* _INC_ERRNO */

[-- Attachment #8: ptw32_InterlockedCompareExchange.c.orig --]
[-- Type: application/octet-stream, Size: 3363 bytes --]

/*
 * ptw32_InterlockedCompareExchange.c
 *
 * Description:
 * This translation unit implements routines which are private to
 * the implementation and may be used throughout it.
 *
 * --------------------------------------------------------------------------
 *
 *      Pthreads-win32 - POSIX Threads Library for Win32
 *      Copyright(C) 1998 John E. Bossom
 *      Copyright(C) 1999,2002 Pthreads-win32 contributors
 * 
 *      Contact Email: rpj@ise.canberra.edu.au
 * 
 *      The current list of contributors is contained
 *      in the file CONTRIBUTORS included with the source
 *      code distribution. The list can also be seen at the
 *      following World Wide Web location:
 *      http://sources.redhat.com/pthreads-win32/contributors.html
 * 
 *      This library is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU Lesser General Public
 *      License as published by the Free Software Foundation; either
 *      version 2 of the License, or (at your option) any later version.
 * 
 *      This library is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *      Lesser General Public License for more details.
 * 
 *      You should have received a copy of the GNU Lesser General Public
 *      License along with this library in the file COPYING.LIB;
 *      if not, write to the Free Software Foundation, Inc.,
 *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 */

#include "pthread.h"
#include "implement.h"


/*
 * ptw32_InterlockedCompareExchange --
 *
 * Needed because W95 doesn't support InterlockedCompareExchange.
 * It is only used when running the dll on W95. Other versions of
 * Windows use the Win32 supported version, which may be running on
 * different processor types.
 *
 * This can't be inlined because we need to know it's address so that
 * we can call it through a pointer.
 */
PTW32_INTERLOCKED_LONG WINAPI
ptw32_InterlockedCompareExchange(PTW32_INTERLOCKED_LPLONG location,
				 PTW32_INTERLOCKED_LONG   value,
				 PTW32_INTERLOCKED_LONG   comparand)
{
  PTW32_INTERLOCKED_LONG result;

#if defined(_M_IX86) || defined(_X86_)

#if defined(_MSC_VER)

  _asm {
    PUSH	 ecx
    PUSH	 edx
    MOV 	 ecx,dword ptr [location]
    MOV 	 edx,dword ptr [value]
    MOV 	 eax,dword ptr [comparand]
    LOCK CMPXCHG dword ptr [ecx],edx	    ; if (EAX == [ECX]), 
					    ;	[ECX] = EDX
					    ; else
					    ;	EAX = [ECX]
    MOV 	 dword ptr [result], eax
    POP 	 edx
    POP 	 ecx
  }

#elif defined(__GNUC__)

  __asm__
    (
     "lock\n\t"
     "cmpxchgl	     %3,(%0)"	 /* if (EAX == [location]), */
				 /*   [location] = value    */
				 /* else		    */
				 /*   EAX = [location]		 */
     :"=r" (location), "=a" (result)
     :"0"  (location), "q" (value), "a" (comparand)
     : "memory" );

#endif

#else

  /*
   * If execution gets to here then we should be running on a Win95 system
   * but either running on something other than an X86 processor, or a
   * compiler other than MSVC or GCC. Pthreads-win32 doesn't support that
   * platform (yet).
   */

  result = 0;

#endif

  return result;
}

[-- Attachment #9: pthread.c --]
[-- Type: text/plain, Size: 2194 bytes --]

/*
 * pthread.c
 *
 * Description:
 * This translation unit agregates pthreads-win32 translation units.
 * It is used for inline optimisation of the library,
 * maximising for speed at the expense of size.
 *
 * --------------------------------------------------------------------------
 *
 *      Pthreads-win32 - POSIX Threads Library for Win32
 *      Copyright(C) 1998 John E. Bossom
 *      Copyright(C) 1999,2002 Pthreads-win32 contributors
 * 
 *      Contact Email: rpj@ise.canberra.edu.au
 * 
 *      The current list of contributors is contained
 *      in the file CONTRIBUTORS included with the source
 *      code distribution. The list can also be seen at the
 *      following World Wide Web location:
 *      http://sources.redhat.com/pthreads-win32/contributors.html
 * 
 *      This library is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU Lesser General Public
 *      License as published by the Free Software Foundation; either
 *      version 2 of the License, or (at your option) any later version.
 * 
 *      This library is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *      Lesser General Public License for more details.
 * 
 *      You should have received a copy of the GNU Lesser General Public
 *      License along with this library in the file COPYING.LIB;
 *      if not, write to the Free Software Foundation, Inc.,
 *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 */

#include "pthread.h"
#include "implement.h"

#include "attr.c"
#include "barrier.c"
#include "cancel.c"
#include "cleanup.c"
#include "condvar.c"
#include "create.c"
//MHEI für Lib auskommentiert 29.5.03: #include "dll.c"
#include "errno.c"
#include "exit.c"
#include "fork.c"
#include "global.c"
#include "misc.c"
#include "mutex.c"
#include "nonportable.c"
#include "private.c"
#include "rwlock.c"
#include "sched.c"
#include "semaphore.c"
#include "signal.c"
#include "spin.c"
#include "sync.c"
#include "tsd.c"

[-- Attachment #10: pthread.c.orig --]
[-- Type: application/octet-stream, Size: 2155 bytes --]

/*
 * pthread.c
 *
 * Description:
 * This translation unit agregates pthreads-win32 translation units.
 * It is used for inline optimisation of the library,
 * maximising for speed at the expense of size.
 *
 * --------------------------------------------------------------------------
 *
 *      Pthreads-win32 - POSIX Threads Library for Win32
 *      Copyright(C) 1998 John E. Bossom
 *      Copyright(C) 1999,2002 Pthreads-win32 contributors
 * 
 *      Contact Email: rpj@ise.canberra.edu.au
 * 
 *      The current list of contributors is contained
 *      in the file CONTRIBUTORS included with the source
 *      code distribution. The list can also be seen at the
 *      following World Wide Web location:
 *      http://sources.redhat.com/pthreads-win32/contributors.html
 * 
 *      This library is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU Lesser General Public
 *      License as published by the Free Software Foundation; either
 *      version 2 of the License, or (at your option) any later version.
 * 
 *      This library is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *      Lesser General Public License for more details.
 * 
 *      You should have received a copy of the GNU Lesser General Public
 *      License along with this library in the file COPYING.LIB;
 *      if not, write to the Free Software Foundation, Inc.,
 *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 */

#include "pthread.h"
#include "implement.h"

#include "attr.c"
#include "barrier.c"
#include "cancel.c"
#include "cleanup.c"
#include "condvar.c"
#include "create.c"
#include "dll.c"
#include "errno.c"
#include "exit.c"
#include "fork.c"
#include "global.c"
#include "misc.c"
#include "mutex.c"
#include "nonportable.c"
#include "private.c"
#include "rwlock.c"
#include "sched.c"
#include "semaphore.c"
#include "signal.c"
#include "spin.c"
#include "sync.c"
#include "tsd.c"

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Borland Builder
@ 2003-07-18  2:29 Will Bryant
  2003-07-18  7:22 ` Dr. Michael Heitland (caatoosee ag)
  0 siblings, 1 reply; 6+ messages in thread
From: Will Bryant @ 2003-07-18  2:29 UTC (permalink / raw)
  To: Francisco Vinotinto; +Cc: pthreads-win32

Hi Francisco,

> Is it possible to use this library with Borland
> Builder?

I assume you mean C++Builder: Yes it is.

As a quick and dirty solution you can use the MSVC dll, pthreadVC.dll, but
you need to generate an import library for use with the Borland compiler.
To do this just go into the pre-built directory and run:

impdef -a pthreadBC.def pthreadBC.dll
implib pthreadBC.lib pthreadBC.def

You'll prolly need to move or copy the .lib somewhere else, the C++Builder 5
IDE doesn't seem to like linking libraries from directories with hyphens in
them.


This is enough to get you started and does seem to work ok.  However, from
what I understand, it's not a 'correct' solution because that DLL is linked
against the MSVC C runtime library, and that's not compatible with the
Borland runtime.  As such IMHO it's quite surprising that it runs so well.

I'm working on a proper port right now so that you can build it with
C++Builder, hopefully I'll be mailing the list about that sometime in the
next week - mainly it just requires a new makefile and a couple of small
changes elsewhere.

So if you're thinking of using pthreads-win32 with the Borland tools then
use the quick solution above for now and keep an eye out for the forthcoming
port work, which fingers crossed the maintainers will accept into the next
release.

Cheers,
Will

--
Will Bryant
Systems Architect, eCOSM Limited
Phone +64 3 365 4176
http://www.ecosm.com/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: borland builder
       [not found] <B148DA6A21DBD311AEEF00104B28C229E113@w5.daf.concentric.net>
@ 2000-07-18 14:27 ` uGAH man
  0 siblings, 0 replies; 6+ messages in thread
From: uGAH man @ 2000-07-18 14:27 UTC (permalink / raw)
  To: pthread

----- Original Message -----
From: Chris Olivier <Chriso@VIZTEK.NET>
To: 'uGAH man' <snake@drinkordie.com>
Sent: Tuesday, July 18, 2000 4:57 PM
Subject: RE: borland builder

i did what you said, but it failed somehow
i've been wondering, isnt 4.466 bytes too small for all the pthreads code?
you can assume i used the correct .dll which was distributed in the
pthreads-win32 project.

C:\CBuilder5\Bin> impdef pthreads.def pthread.dll
Borland Impdef Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation
C:\CBuilder5\Bin> implib pthread.lib pthread.def
Borland Implib Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation
Error : unable to open file
C:\Arquivos de programas\Borland\CBuilder5\Bin>dir.def
PTHREADS DEF         4.466  18-07-00  18:24 pthreads.def

> Do this.
>
> impdef pthreads.def pthreads.dll (or whatever name the dll is)
> implib pthreads.lib pthreads.def
>
> Note:  You could normally just use "implib pthreads.lib pthreads.dll", but
> Borland
> has a bug that strips the leading "_" from the last entry.  This
workaround
> fixes this problem.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* borland builder
@ 2000-07-18 11:57 uGAH man
  0 siblings, 0 replies; 6+ messages in thread
From: uGAH man @ 2000-07-18 11:57 UTC (permalink / raw)
  To: pthread

hi
i wanted to use pthreads for win32 in my borland c++ builder application,
but borland requires you to import code from the dll into a lib.

could anyone tell me how to do this, since pthread-win32 code is distributed
under a dll AND a lib ?

thanks.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-07-21  5:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-20 15:18 Borland Builder Francisco Vinotinto
  -- strict thread matches above, loose matches on Subject: below --
2003-07-18  2:29 Will Bryant
2003-07-18  7:22 ` Dr. Michael Heitland (caatoosee ag)
2003-07-21  5:51   ` Will Bryant
     [not found] <B148DA6A21DBD311AEEF00104B28C229E113@w5.daf.concentric.net>
2000-07-18 14:27 ` borland builder uGAH man
2000-07-18 11:57 uGAH man

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).