Update: perl-Win32-GUI, perl-libwin32

Reini Urban rurban@x-ray.at
Mon Feb 28 18:18:00 GMT 2005


Gerrit P. Haase schrieb:
> Reini Urban wrote:
>> Gerrit P. Haase schrieb:
>>> Reini Urban wrote:
>>>
>>>>> Ok, I fixed all cygwin issues. vendor, pid's, rebased, better 
>>>>> pm_to_blib
>>>>> patch.
>>>>> http://xarch.tu-graz.ac.at/publ/cygwin/release/perl-Win32-GUI/perl-Win32-GUI-1.0-2.tar.bz2 
>>>>> http://xarch.tu-graz.ac.at/publ/cygwin/release/perl-Win32-GUI/perl-Win32-GUI-1.0-2-src.tar.bz2 
>>>>> http://xarch.tu-graz.ac.at/publ/cygwin/release/perl-libwin32/perl-libwin32-0.191-3.tar.bz2 
>>>>> http://xarch.tu-graz.ac.at/publ/cygwin/release/perl-libwin32/perl-libwin32-0.191-3-src.tar.bz2 
>>>
>>>
>>> Sorry, I was on a business trip for two weeks...
>>> I tried to rebuild:
>>>
>>> $ ./perl-libwin32-0.191-3.sh prep
>>> patching file perl-libwin32-0.191/APIFile/File.pm
>>> Hunk #1 FAILED at 5.
>>
>>
>> ....
>>
>>> Hunk #2 FAILED at 22.
>>> Hunk #3 FAILED at 48.
>>> [...continues...]
>>>
>>> What goes wrong?  I have no idea, but I havn't looked closer at this.
>>
>>
>>
>> Oops! Sorry. Stupid doseol issues.
>>
>> I've updated this package to:
>> http://xarch.tu-graz.ac.at/publ/cygwin/release/perl-libwin32/perl-libwin32-0.191-4.tar.bz2 
>>
>> http://xarch.tu-graz.ac.at/publ/cygwin/release/perl-libwin32/perl-libwin32-0.191-4-src.tar.bz2 
>>
>> Binary package and setup.hint is the same.
>> Just the src patch and the build script fixes the dos eol to \n.
> 
> 
> This is better now;)
> 
> Getting this warnings now:
> WARNING: Having environment variable LIB set will most likely cause your 
> build to fail!
> 
> Would be a not that bad to unset LIB in the build script (for me).

good idea.

> I'm getting an error for ODBC:
> gcc -c   -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe  -pipe 
> -DUSEIMPORTLIB -O3   -DVERSION=\"0.032\" -DXS_VERSION=\"0.032\" 
> "-I/usr/lib/perl5/5.8/cygwin/CORE"   CMom.cpp
> In file included from /usr/include/sql.h:87,
>                  from CMom.cpp:26:
> /usr/include/iodbcunix.h:118: Fehler: in Konflikt stehende Deklaration 
>  >>typedef unsigned int DWORD<<
> /usr/lib/gcc/i686-pc-cygwin/3.4.1/../../../../include/w32api/windef.h:222: 
> Fehler: >>DWORD<< hat eine vorherige Deklaration als >>typedef long 
> unsigned int DWORDs<<
> /usr/include/iodbcunix.h:118: Fehler: declaration of `typedef unsigned 
> int DWORD'
> /usr/lib/gcc/i686-pc-cygwin/3.4.1/../../../../include/w32api/windef.h:222: 
> Fehler: conflicts with previous declaration `typedef long unsigned int 
> DWORD'
> /usr/include/iodbcunix.h:118: Fehler: declaration of `typedef unsigned 
> int DWORD'
> /usr/lib/gcc/i686-pc-cygwin/3.4.1/../../../../include/w32api/windef.h:222: 
> Fehler: conflicts with previous declaration `typedef long unsigned int 
> DWORD'
> make[1]: *** [CMom.o] Fehler 1
> make[1]: Leaving directory 
> `/k/ftproot/pub/perl/libwin32/perl-libwin32-0.191/ODBC'
> make: *** [subdirs] Fehler 2
> 
> 
> You use the w32api counterpart of the iODBC /usr/include/sql.h?
> Moving it aside seems to work, however I get an error from the linker:

yes, iodbc is your/our private toy. we'll have to fix that later.

> LD_RUN_PATH="" ld2  -s -L/usr/local/lib CMom.o Constant.o CResults.o 
> ODBC.o Odbc.res  -o ../blib/arch/auto/Win32/ODBC/ODBC.dll 
> /usr/lib/perl5/5.8/cygwin/CORE/libperl.dll.a -L/lib/w32api -lnetapi32 
> -lwininet -lversion -lmpr -lodbc32 -lodbccp32 -lwinmm -lstdc++ -lole32 
> -loleaut32 -luuid -lcomctl32 -lgdi32 -lcomdlg32 -lntdll
> gcc -shared -o  ODBC.dll -Wl,--out-implib=libODBC.dll.a 
> -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--stack,8388608 \
> -s -L/usr/local/lib CMom.o Constant.o CResults.o ODBC.o Odbc.res 
> /usr/lib/perl5/5.8/cygwin/CORE/libperl.dll.a -L/lib/w32api -lnetapi32 
> -lwininet -lversion -lmpr -lodbc32 -lodbccp32 -lwinmm -lstdc++ -lole32 
> -loleaut32 -luuid -lcomctl32 -lgdi32 -lcomdlg32 -lntdll
> Creating library file: libODBC.dll.a
> ODBC.o(.text+0x85e6):ODBC.cpp: undefined reference to 
> `_SQLGetPrivateProfileString'
> ODBC.o(.text+0x8bd2):ODBC.cpp: undefined reference to 
> `_SQLGetPrivateProfileString'
> ODBC.o(.text+0x1100d):ODBC.cpp: undefined reference to 
> `_SQLConfigDataSource'
> collect2: ld gab 1 als Ende-Status zur"uck
> perlld: *** system() failed to execute
> gcc -shared -o  ODBC.dll -Wl,--out-implib=libODBC.dll.a 
> -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--stack,8388608 \
> -s -L/usr/local/lib CMom.o Constant.o CResults.o ODBC.o Odbc.res 
> /usr/lib/perl5/5.8/cygwin/CORE/libperl.dll.a -L/lib/w32api -lnetapi32 
> -lwininet -lversion -lmpr -lodbc32 -lodbccp32 -lwinmm -lstdc++ -lole32 
> -loleaut32 -luuid -lcomctl32 -lgdi32 -lcomdlg32 -lntdll

Hmm, -lodbccp32 (=> /lib/w32api/libodbccp32.a) should import those.
Do you miss that? This was last changed 3 years ago. The very first 
w32api version.
     http://cvs.sourceforge.net/viewcvs.py/mingw/w32api/lib/

Or maybe you miss ODBCCP32.dll in $WINDIR/System32?

> Do I need to update w32api:
> $ cygcheck -c w32api
> Cygwin Package Information
> Package              Version        Status
> w32api               3.1-1          OK
> 
> ?

w32api-3.2-1 has some new definitions, but I thought that I check 
against that dynamically in win32perl.h:
   Older commctrl.h misses some defs, the jobs functions (Win32::Process)
   need >= 2.2-1

I'll checkin a fix against the iodbcunix clash with 
/usr/include/iodbcunix.h sooner or later (I already reported this clash 
some months ago).
But since this is no official package, please fix that on your side 
first, so that this can go out.
-- 
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban
http://phpwiki.org



More information about the Cygwin-apps mailing list