Date: Thu, 4 Nov 2004 00:04:18 EST-10EDT,10,-1,0,7200,3,-1,0,7200,3600 Subject: [UnixOS2_Archive] No. 437 ************************************************** Wednesday 03 November 2004 Number 437 ************************************************** Subjects for today 1 Building UNZIP with GCC 3.3.4 : John Poltorak 2 Re: Building UNZIP with GCC 3.3.4 : Stefan.Neis at t-online.de 3 Re: Building UNZIP with GCC 3.3.4 : John Poltorak 4 Re: Building UNZIP with GCC 3.3.4 : Stefan.Neis at t-online.de 5 Re: Warpzilla Build Instructions : Andreas Buening 6 Re: AM_WITH_REGEX macro : Andreas Buening 7 Re: Building UNZIP with GCC 3.3.4 : Henry Sobotka 8 Re: Building UNZIP with GCC 3.3.4 : John Poltorak 9 Re: AM_WITH_REGEX macro : John Poltorak 10 Re: Building UNZIP with GCC 3.3.4 : Yuri Dario" 11 Re: Building UNZIP with GCC 3.3.4 : Henry Sobotka 12 Re: Building UNZIP with GCC 3.3.4 : John Poltorak 13 Re: Building UNZIP with GCC 3.3.4 : Steve Wendt **= Email 1 ==========================** Date: Tue, 2 Nov 2004 16:01:33 +0000 From: John Poltorak Subject: Building UNZIP with GCC 3.3.4 Can anyone suggest what I need to change to my setup so that I can successfully build UNZIP 5.50 using GCC 3.3.4? It builds out of the box with 2.8.1. Here is a log of the build:- [T:\ux2bs\workdir\unzip-5.50]SET LOCAL_UNZIP=-DOS2_EAS -DUSE_UNSHRINK [T:\ux2bs\workdir\unzip-5.50]make -f os2\makefile.os2 gcc make -f os2/makefile.os2 all \ CC="gcc -Zomf -O -I." \ CFLAGS="-Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK" \ NFLAGS="" \ DLLFLAG="" \ AS="gcc -Zomf" \ ASFLAGS="-Di386" \ LDFLAGS="-o ./" \ LDFLAGS2="-Zsmall-conv -Zstack 320 -Zsys -s" \ OUT="-o" \ OBJ=".obj" \ CRC32="crc_gcc" \ CRC32F="crc_gcc" \ CRC32X="crc_gcc" \ DEF="os2/unzip.def" make[1]: Entering directory `/ux2bs/workdir/unzip-5.50' gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK unzip.c gcc -Zomf -Di386 -x assembler-with-cpp -c -o crc_gcc.obj crc_i386.S gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK crctab.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK crypt.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK envargs.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK explode.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK extract.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK fileio.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK globals.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK inflate.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK list.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK match.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK process.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK ttyio.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK unreduce.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK unshrink.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK zipinfo.c gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK os2/os2.c os2/os2.c: In function `SetACL': os2/os2.c:644: warning: long int format, unsigned int arg (arg 3) gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK os2/os2acl.c os2/os2acl.c: In function `NetAccessGetInfo': os2/os2acl.c:126: warning: implicit declaration of function `_emx_32to16' gcc -Zomf -O -I. -o ./unzip.exe os2/unzip.def unzip.obj crc_gcc.obj crctab.obj crypt.obj envargs.obj explode.obj extract.obj fileio.obj globals.obj inflate.obj list.obj match.obj process.obj ttyio.obj unreduce.obj unshrink.obj zipinfo.obj os2.obj os2acl.obj -Zsmall-conv -Zstack 320 -Zsys -s gcc: unzip.obj: No such file or directory gcc: crctab.obj: No such file or directory gcc: crypt.obj: No such file or directory gcc: envargs.obj: No such file or directory gcc: explode.obj: No such file or directory gcc: extract.obj: No such file or directory gcc: fileio.obj: No such file or directory gcc: globals.obj: No such file or directory gcc: inflate.obj: No such file or directory gcc: list.obj: No such file or directory gcc: match.obj: No such file or directory gcc: process.obj: No such file or directory gcc: ttyio.obj: No such file or directory gcc: unreduce.obj: No such file or directory gcc: unshrink.obj: No such file or directory gcc: zipinfo.obj: No such file or directory gcc: os2.obj: No such file or directory gcc: os2acl.obj: No such file or directory gcc: unrecognized option `-Zsys' make[1]: *** [unzip.exe] Error 1 make[1]: Leaving directory `/ux2bs/workdir/unzip-5.50' make: *** [gcc] Error 2 -- John **= Email 2 ==========================** Date: Tue, 02 Nov 2004 16:25:34 +0100 (CET) From: Stefan.Neis at t-online.de Subject: Re: Building UNZIP with GCC 3.3.4 John Poltorak schrieb: > make -f os2/makefile.os2 all \ (snipp) > OBJ=".obj" \ (snipp) > gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS > -DUSE_UNSHRINK unshrink.c Note: By default, Innotek generates ".o" files, no matter is it's an OMF or an a.out file, while EMX used ".o" for a.out and ".obj" for OMF. (snipp) > gcc -Zomf -O -I. -o ./unzip.exe os2/unzip.def unzip.obj > crc_gcc.obj crctab.obj crypt.obj envargs.obj explode.obj > extract.obj fileio.obj globals.obj inflate.obj list.obj > match.obj process.obj ttyio.obj unreduce.obj unshrink.obj > zipinfo.obj os2.obj os2acl.obj -Zsmall-conv -Zstack 320 > -Zsys -s > gcc: unzip.obj: No such file or directory# (snipp) So the makefile (written for EMX) assumes you got ".obj" files, but what you really got are ".o". replacing OBJ=".obj" by OBJ=".o" in os2\makefile.os2 should do the trick - there are possibly several occurences, make sure you change "the right one" (in case of doubt, change them all...). Regards, Stefan **= Email 3 ==========================** Date: Tue, 2 Nov 2004 16:42:25 +0000 From: John Poltorak Subject: Re: Building UNZIP with GCC 3.3.4 On Tue, Nov 02, 2004 at 04:25:34PM +0100, Stefan.Neis at t-online.de wrote: > John Poltorak schrieb: > > make -f os2/makefile.os2 all \ > (snipp) > > OBJ=".obj" \ > (snipp) > > gcc -Zomf -O -I. -c -Wall -DOS2 -DASM_CRC -DOS2_EAS > > -DUSE_UNSHRINK unshrink.c > > Note: By default, Innotek generates ".o" files, no matter is it's an > OMF or an a.out file, while EMX used ".o" for a.out and ".obj" for > OMF. > > (snipp) > > gcc -Zomf -O -I. -o ./unzip.exe os2/unzip.def unzip.obj > > crc_gcc.obj crctab.obj crypt.obj envargs.obj explode.obj > > extract.obj fileio.obj globals.obj inflate.obj list.obj > > match.obj process.obj ttyio.obj unreduce.obj unshrink.obj > > zipinfo.obj os2.obj os2acl.obj -Zsmall-conv -Zstack 320 > > -Zsys -s > > gcc: unzip.obj: No such file or directory# > (snipp) > So the makefile (written for EMX) assumes you got > ".obj" files, but what you really got are ".o". > > replacing OBJ=".obj" by OBJ=".o" in os2\makefile.os2 > should do the trick - there are possibly several occurences, > make sure you change "the right one" (in case of doubt, > change them all...). Only one change was needed - this was the result:- [T:\ux2bs\workdir\unzip-5.50]SET LOCAL_UNZIP=-DOS2_EAS -DUSE_UNSHRINK [T:\ux2bs\workdir\unzip-5.50]make -f os2\makefile.os2 gcc make -f os2/makefile.os2 all \ CC="gcc -Zomf -O -I." \ CFLAGS="-Wall -DOS2 -DASM_CRC -DOS2_EAS -DUSE_UNSHRINK" \ NFLAGS="" \ DLLFLAG="" \ AS="gcc -Zomf" \ ASFLAGS="-Di386" \ LDFLAGS="-o ./" \ LDFLAGS2="-Zsmall-conv -Zstack 320 -Zsys -s" \ OUT="-o" \ OBJ=".o" \ CRC32="crc_gcc" \ CRC32F="crc_gcc" \ CRC32X="crc_gcc" \ DEF="os2/unzip.def" make[1]: Entering directory `/ux2bs/workdir/unzip-5.50' make[1]: *** Warning: File `unzip.o' has modification time in the future gcc -Zomf -Di386 -x assembler-with-cpp -c -o crc_gcc.o crc_i386.S gcc -Zomf -O -I. -o ./unzip.exe os2/unzip.def unzip.o crc_gcc.o crctab.o crypt.o envargs.o explode.o extract.o fileio.o globals.o inflate.o list.o match.o process.o ttyio.o unreduce.o unshrink.o zipinfo.o os2.o os2acl.o -Zsmall-conv -Zstack 320 -Zsys -s gcc: unrecognized option `-Zsys' weakld: error: Unresolved symbol (UNDEF) '__emx_32to16'. weakld: info: The symbol is referenced by: T:\ux2bs\workdir\unzip-5.50\os2acl.o Ignoring unresolved externals reported from weak prelinker. T:\ux2bs\workdir\unzip-5.50\os2acl.o(os2acl.o) : error LNK2029: "__emx_32to16" : unresolved external > Regards, > Stefan -- John **= Email 4 ==========================** Date: Tue, 02 Nov 2004 19:27:29 +0100 (CET) From: Stefan.Neis at t-online.de Subject: Re: Building UNZIP with GCC 3.3.4 John Poltorak schrieb: > weakld: error: Unresolved symbol (UNDEF) '__emx_32to16'. IIRC, I did see a corresponding warning in your first post ... According to the manual, that function is converting 32 bit "flat pointers" to 16-bit "far pointers (16:16 format)". No idea, what this is about, why unzip would want to use that or what to use with Innotek as a replacement. :-( Regards, Stefan **= Email 5 ==========================** Date: Tue, 02 Nov 2004 22:24:21 +0100 From: Andreas Buening Subject: Re: Warpzilla Build Instructions Knut St. Osmundsen wrote: > > Stefan.Neis at t-online.de wrote: > > AFAIK, Innotek uses "optlink" by default (probably following what > > VAC++ did...), while EMX used standard convention. But I just might > > be confused ... > > No, we don't. BUT we use the same namemangling for a.out and OMF, and we > don't have any underscore prefix hacks for importlibraries and stuff > like EMX had. Thanks for the clarification. Just for curiosity: is this now the same name mangling scheme as used by other gcc implementations on other systems? Bye, Andreas **= Email 6 ==========================** Date: Tue, 02 Nov 2004 22:24:14 +0100 From: Andreas Buening Subject: Re: AM_WITH_REGEX macro John Poltorak wrote: > > AM_WITH_REGEX looks as though it should add the option to build with an > external regex library when running configure, but I'm not sure how to get > autoconf to recognise it - I presume it is a macro which should be in > configure.in... Do I need anything else in the file apart from including > the name of the macro? Just a wild guess: you have to put the file (regex.m4?) where this macro is defined into your source directory, put "AM_WITH_REGEX" into your configure.in file, remove the regex library (regex.c and maybe some other files) from the default sources in Makefile.am and put it into a special statement which I don't remember at the moment. Unless you're going to submit your patches into the main source tree, it's too much work, IMHO. Bye, Andreas **= Email 7 ==========================** Date: Tue, 02 Nov 2004 15:34:20 -0500 From: Henry Sobotka Subject: Re: Building UNZIP with GCC 3.3.4 Stefan.Neis at t-online.de wrote: > > According to the manual, that function is converting 32 bit "flat > pointers" > to 16-bit "far pointers (16:16 format)". > No idea, what this is about, why unzip would want to use that or > what to use with Innotek as a replacement. :-( Possibly legacy code for building a 16-bit version for DOS, in which case it could be #ifdef 0'd or otherwise disabled. h~ **= Email 8 ==========================** Date: Tue, 2 Nov 2004 21:51:37 +0000 From: John Poltorak Subject: Re: Building UNZIP with GCC 3.3.4 On Tue, Nov 02, 2004 at 03:34:20PM -0500, Henry Sobotka wrote: > Stefan.Neis at t-online.de wrote: > > > > According to the manual, that function is converting 32 bit "flat > > pointers" > > to 16-bit "far pointers (16:16 format)". > > No idea, what this is about, why unzip would want to use that or > > what to use with Innotek as a replacement. :-( > > Possibly legacy code for building a 16-bit version for DOS, in which > case it could be #ifdef 0'd or otherwise disabled. This is relevant part of the OS/2 Makefile included with UNZIP 5.50:- # emx, gcc, OMF format, statically linked C runtime gcc: $(MAKE) -f os2/makefile.os2 all \ CC="gcc -Zomf -O -I." \ CFLAGS="-Wall -DOS2 -DASM_CRC $(LOCAL_UNZIP)" \ NFLAGS="" \ DLLFLAG="" \ AS="gcc -Zomf" \ ASFLAGS="-Di386" \ LDFLAGS="-o ./" \ LDFLAGS2="-Zsmall-conv -Zstack 320 -Zsys -s" \ OUT="-o" \ OBJ=".o" \ CRC32="crc_gcc" \ CRC32F="crc_gcc" \ CRC32X="crc_gcc" \ DEF="os2/unzip.def" # emx, gcc, OMF format, dynamically linked C runtime gccdyn: $(MAKE) -f os2/makefile.os2 all \ CC="gcc -Zomf -O -I." \ CFLAGS="-Wall -DOS2 -DASM_CRC $(LOCAL_UNZIP)" \ NFLAGS="" \ DLLFLAG="" \ AS="gcc -Zomf" \ ASFLAGS="-Di386" \ LDFLAGS="-o ./" \ LDFLAGS2="-Zstack 320 -Zcrtdll -s" \ OUT="-o" \ OBJ=".obj" \ CRC32="crc_gcc" \ CRC32F="crc_gcc" \ CRC32X="crc_gcc" \ DEF="os2/unzip.def" Or would this error require a code change? > h~ -- John **= Email 9 ==========================** Date: Tue, 2 Nov 2004 23:18:52 +0000 From: John Poltorak Subject: Re: AM_WITH_REGEX macro On Tue, Nov 02, 2004 at 10:24:14PM +0100, Andreas Buening wrote: > John Poltorak wrote: > > > > AM_WITH_REGEX looks as though it should add the option to build with an > > external regex library when running configure, but I'm not sure how to get > > autoconf to recognise it - I presume it is a macro which should be in > > configure.in... Do I need anything else in the file apart from including > > the name of the macro? > > Just a wild guess: you have to put the file (regex.m4?) where > this macro is defined into your source directory, put > "AM_WITH_REGEX" into your configure.in file, remove the regex > library (regex.c and maybe some other files) from the default > sources in Makefile.am and put it into a special statement > which I don't remember at the moment. > Unless you're going to submit your patches into the main source > tree, it's too much work, IMHO. I'm looking at it in terms of a training exercise to get familiar with the ins and out of the autotools. regex.m4 exists under \usr\local\share\aclocal and it's my understanding that this macro gets run by including AM_WITH_REGEX in configure.in but maybe some additional entry is also required... There is no Makefile.am in the release of DIFF I'm looking at. Does this pose a problem? > Bye, > Andreas -- John **= Email 10 ==========================** Date: Tue, 02 Nov 2004 23:27:17 +0100 (CET) From: "Yuri Dario" Subject: Re: Building UNZIP with GCC 3.3.4 Hi, >Can anyone suggest what I need to change to my setup so that I can >successfully build UNZIP 5.50 using GCC 3.3.4? It builds out of the box >with 2.8.1. Knut built both zip&unzip with gcc3.2.2: binaries are at innotek site. Bye, Yuri Dario /* * member of TeamOS/2 - Italy * http://www.os2power.com/yuri * http://www.teamos2.it */ **= Email 11 ==========================** Date: Tue, 02 Nov 2004 17:34:48 -0500 From: Henry Sobotka Subject: Re: Building UNZIP with GCC 3.3.4 John Poltorak wrote: > > Or would this error require a code change? Yes. grep the headers and *.c files for __emx_32to16. That's where it would have to be neutralized. h~ **= Email 12 ==========================** Date: Tue, 2 Nov 2004 23:47:41 +0000 From: John Poltorak Subject: Re: Building UNZIP with GCC 3.3.4 On Tue, Nov 02, 2004 at 11:27:17PM +0100, Yuri Dario wrote: > Hi, > > >Can anyone suggest what I need to change to my setup so that I can > >successfully build UNZIP 5.50 using GCC 3.3.4? It builds out of the box > >with 2.8.1. > > Knut built both zip&unzip with gcc3.2.2: binaries are at innotek site. Thanks for the tip. Interestingly there has been a change to os2acl.c with the inclusion of the followuing two lines #define _emx_32to16(x) _libc_32to16(x) #define _emx_16to32(x) _libc_16to32(x) and a number of changes have been made to Makefile.os2. I wonder whether these changes would prevent UNZIP being built with gcc 2.8.1.. > > Bye, > > Yuri Dario > > /* > * member of TeamOS/2 - Italy > * http://www.os2power.com/yuri > * http://www.teamos2.it > */ -- John **= Email 13 ==========================** Date: Tue, 2 Nov 2004 16:26:01 -0800 (PST) From: Steve Wendt Subject: Re: Building UNZIP with GCC 3.3.4 On Tue, 2 Nov 2004, John Poltorak wrote: > #define _emx_32to16(x) _libc_32to16(x) > #define _emx_16to32(x) _libc_16to32(x) > > I wonder whether these changes would prevent UNZIP being built with > gcc 2.8.1.. Certainly, unless libc links cleanly with gcc 2.8.1 code (probably not).