delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2021/11/16/09:55:25

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
Date: Tue, 16 Nov 2021 14:55:05 +0000
X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
s=protonmail; t=1637074507;
bh=mOaztt5ejPb6GzeItXZyW5TIYa0DUY2SNUgTwG2ys6Q=;
h=Date:To:From:Reply-To:Subject:From;
b=gyBvBGVV9kADHQHGvjSsQhD50MDuqnE92ASioV5Xgru1rnelLOpcTDmjmKZR/gvpu
TfrqTyGUE+flwJb01TiQJw0fonsA90xVW2r2lmkYuojATYZnStJqaOrHLjG8nw5/vh
RG/HB6hOO1Op+wyYyq+j+0IGvnfFg7t8d17LmUQo=
To: "djgpp AT delorie DOT com" <djgpp AT delorie DOT com>
From: "gnufan42 (gnufan42 AT protonmail DOT com) [via djgpp AT delorie DOT com]" <djgpp AT delorie DOT com>
Subject: How to use pth207b.zip?
Message-ID: <GpsWHLVmNduvFCp7RY7_iXsLFC1zgKe2XrybOvSiJkx61mLotY5bnJ3OsOLGJOSPtc_ZBlUCWHR_QWo8eOgD0rrddWSluumhqpT8zv_jl4A=@protonmail.com>
MIME-Version: 1.0
X-Spam-Status: No, score=-0.7 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED,
DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,
FREEMAIL_FROM,FREEMAIL_REPLYTO_END_DIGIT shortcircuit=no
autolearn=disabled version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
mailout.protonmail.ch
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id 1AGEtBZ5013768
Reply-To: djgpp AT delorie DOT com

	I must use pthread library to port a program to DOS. I'm using cygwin and I'm cross-compiling. The djgpp-gcc cygwin provided didn't come up with the library so I downloaded pth207b.zip. I'm sure I extracted the files to correct places. After I've done that I tried to compile a simple test program, but gcc said that it can't find sys/socket.h and it is included by pthread.h. I have no idea why on earth a thread library needs network but according to the FAQ (https://www.delorie.com/djgpp/v2faq/faq22_4.html). I chose WATTCP library and downloaded tcplib.zip. Then the gcc said that it can't find sys/wtime.h. I found that file in wat3222br2.zip so I copied wat3222br2.zip/net/watt/inc to /usr/i586-msdosdjgpp/include and wat3222br2.zip/net/watt/lib to /usr/i586-msdosdjgpp/lib. I thought that should solve the problem but no. The gcc popped up with a bunch of errors about redefinition and conflicting declaration.
	So what I did wrong?
Thanks,
Gnufan

$ gcc ./pth_test.c
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:14:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/osdep.h:143:16: error: redefinition of ‘struct fd_set’
 typedef struct fd_set {
                ^
In file included from /usr/i586-pc-msdosdjgpp/include/pthread.h:111:0,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/types.h:76:16: error: previous definition of ‘struct fd_set’
 typedef struct fd_set {
                ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:14:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/osdep.h:145:3: error: conflicting declaration ‘typedef int fd_set’
 } fd_set;
   ^
In file included from /usr/i586-pc-msdosdjgpp/include/pthread.h:111:0,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/types.h:78:3: note: previous declaration as ‘typedef struct fd_set fd_set’
 } fd_set;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:35:22: error: conflicting declaration ‘typedef unsigned int word’
 typedef unsigned int word;
                      ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:68:24: note: previous declaration as ‘typedef short unsigned int word’
 typedef unsigned short word;        /* 16 bits */
                        ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:43:3: error: conflicting declaration ‘typedef struct tcp_Socket tcp_Socket’
 } tcp_Socket;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:277:3: note: previous declaration as ‘typedef struct _tcp_socket tcp_Socket’
 } tcp_Socket;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:47:3: error: conflicting declaration ‘typedef struct udp_Socket udp_Socket’
 } udp_Socket;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:211:3: note: previous declaration as ‘typedef struct _udp_socket udp_Socket’
 } udp_Socket;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/tcp.h:49:0,
                 from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/extsock.h:5:3: error: conflicting declaration ‘typedef union sock_type sock_type’
 } sock_type;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:279:0,
                 from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/extsock.h:5:3: note: previous declaration as ‘typedef union sock_type sock_type’
 } sock_type;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/tcp.h:49:0,
                 from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/extsock.h:17:3: error: conflicting declaration ‘typedef struct _ext_socket _ext_socket’
 } _ext_socket;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:279:0,
                 from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/extsock.h:17:3: note: previous declaration as ‘typedef struct _ext_socket _ext_socket’
 } _ext_socket;
   ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:51:16: error: redefinition of ‘struct sockaddr_wat’
 typedef struct sockaddr_wat {
                ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:310:16: error: previous definition of ‘struct sockaddr_wat’
 typedef struct sockaddr_wat {
                ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:58:16: error: redefinition of ‘struct in_addr’
 typedef struct in_addr {
                ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:9:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/sockaddr.h:19:8: error: previous definition of ‘struct in_addr’
 struct in_addr {
        ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:73:18: error: ambiguating new declaration of ‘int sock_init()’
 extern sock_init();
                  ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:415:13: note: old declaration ‘void sock_init()’
 extern void sock_init( void );
             ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:112:31: error: ambiguating new declaration of ‘int isaddr(char*)’
 extern int isaddr( char *text );
                               ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:378:13: note: old declaration ‘word isaddr(char*)’
 extern word isaddr( char *string );
             ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:238:23: error: ambiguating new declaration of ‘void _eth_init()’
 extern void _eth_init();
                       ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:321:13: note: old declaration ‘int _eth_init()’
 extern int  _eth_init( void );
             ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:240:32: error: ambiguating new declaration of ‘void _eth_send(word)’
 extern void _eth_send( word len);
                                ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:323:14: note: old declaration ‘int _eth_send(word)’
 extern int   _eth_send( word len);
              ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:259:37: error: ambiguating new declaration of ‘char* psocket(tcp_Socket*)’
 extern char *psocket( tcp_Socket *s );
                                     ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:401:13: note: old declaration ‘void psocket(tcp_Socket*)’
 extern void psocket( tcp_Socket *s );
             ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:265:27: error: ambiguating new declaration of ‘longword gethostid()’
 extern longword gethostid();
                           ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/socket.h:12:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:113,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/sys/wattcp.h:407:6: note: old declaration ‘long int gethostid()’
 long gethostid( void );
      ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:269:50: error: ambiguating new declaration of ‘char* gethostname(char*, int)’
 extern char *gethostname( char *name, int length );
                                                  ^
In file included from /usr/i586-pc-msdosdjgpp/include/pthread.h:116:0,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/unistd.h:172:6: note: old declaration ‘int gethostname(char*, int)’
 int  gethostname(char *buf, int size);
      ^
In file included from /usr/i586-pc-msdosdjgpp/sys-include/sys/select.h:6:0,
                 from /usr/i586-pc-msdosdjgpp/include/pthread.h:117,
                 from pth_test.cpp:2:
/usr/i586-pc-msdosdjgpp/sys-include/tcp.h:279:8: error: ‘_survivebootp’ does not name a type
 extern _survivebootp;
        ^
pth_test.cpp: In function ‘void* {anonymous}::start_routine(void*)’:
pth_test.cpp:32:27: error: ‘nullptr’ was not declared in this scope
         void* no_status = nullptr;
                           ^
pth_test.cpp: In function ‘bool a11c()’:
pth_test.cpp:80:27: error: ‘nullptr’ was not declared in this scope
     {   void* no_status = nullptr;
                           ^


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019