X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f Message-Id: <201404200314.s3K3Eer2006069@delorie.com> Date: Sun, 20 Apr 2014 05:02:07 +0200 From: Juan Manuel Guerrero To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: release 2 of DJGPP port of GNU libunistring 0.9.3 uploaded. Content-Type: text/plain; charset=ISO-8859-15; format=flowed Reply-To: djgpp AT delorie DOT com This is a port of GNU libunistring 0.9.3 to MSDOS/DJGPP. This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard. It consists of the following parts: unistr.h elementary string functions uniconv.h conversion from/to legacy encodings unistdio.h formatted output to strings uniname.h character names unictype.h character classification and properties uniwidth.h string width when using nonproportional fonts uniwbrk.h word breaks unilbrk.h line breaking algorithm uninorm.h normalization (composition and decomposition) unicase.h case folding uniregex.h regular expressions (not yet implemented) ATTENTION: to compile and use this port with DJGPP 2.03 you will have to replace some headers in your installation and also replace some object files in your libc.a This is required to resolve some function name clash and to update some functionality to the DJGPP 2.04 level. This concerns DJGPP 2.03 users only and is not optional. The DJGPP 2.04 version of this port provides the libraries as static libraries and as DXE3 modules too. To be able to produce working DXE3 modules it is necessary to use a freshly compiled libc.a from the CVS respository. This is not optional. DJGPP specific changes. ======================= There are only some minor adjustments required to get the gnulib code and test suite compiled with djgpp. As usual, all files required to configure and compile the package are stored in the /djgpp directory. To be able to configure and compile the package you will need LFN support. This library depends on the iconv library. This is true for configuring, compiling and using the library with your applications. The iconv library is available for DJGPP 2.03 as: and for DJGPP 2.04 as: This library has been compiled using this iconv version. Do not link with other versions, it may not work. The following applies to DJGPP 2.04 users _ONLY_: You can build and use the libunistring either as static library or as a DXE3 loadable module. To build a static library, stock DJGPP 2.04 is enough. But if you prefer a module loaded at run-time, you will need to compile and use a freshly compiled libc.a from the CVS repository source code. Using DXE3 modules has the benefit that the size of the binaries that use libunistring will decrease considerably. Also it guarantees that all programs use the same ported code. Please note that the 2.04 port of libunistring has been configured and compiled as DXE3 module but it contains both versions of the libraries. The DXE3 modules and binaries compiled with them are stored in the gnu/libunistring-0.9.3/djgpp/dxe3 directory of the binary archive. The static version of the libraries and binaries compiled with libc.a from the stock djdev204 archive are stored in their usual place so they will be used as defaults. If you want to use DXE3 modules replace the static version copying the contents of the /dxe3 directory to your installation tree. The DXE3 versions of the libraries are always pairs of files. One is the import library used during the linking of the application, the other is the DXE3 module loaded at run time. The names are: /lib/libunistring.a /lib/libunistring.dxe The files with the ".a" extension are the import libraries created by the dxe3gen tool. The ".a" extension for the import libraries has been choosen intentionally so that linking rules in existing Makefiles do not need to be adjusted. The sources have been configured for the CVS repository version of libc.a. To compile DXE3 modules you must compile like this: make MAKE_DXE3=y If MAKE_DXE3 is omitted then the normal static libraries will be build no matter which libc.a has been installed. To run the test suite you must start make like this: make check MAKE_DXE3=y If MAKE_DXE3 is omitted then LD_LIBRARY_PATH will not be set to point to the freshly build but still not installed DXE3 modules and the test suite will fail because the test binaries cannot load the modules at run-time. To install the products start make like this: make install prefix=/some/dir MAKE_DXE3=y If MAKE_DXE3 is omitted then every thing will be installed except for the DXE3 modules. Again, all this concerns the DJGPP 2.04 users only. To be able to compile your applications using the DXE3 version of the library you will need the a port of binutils that supports resolving multiple symbol definitions during linking. The linker provided by: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu224br2.zip and later port versions provides this features. Please read the documentation to become familiar with this product. This is an verbatim extract of the NEWS file: ------------------------------------------------------------------------------- New in 0.9.3: * Bug fixes in unistr.h functions: - The functions u16_to_u32, u16_to_u8, u8_to_u32, u8_to_u16 now fail when the argument is not valid. Previously, they returned a converted string where invalid parts were each replaced with U+FFFD. - The function u8_mbsnlen now counts an incomplete character at the end of the argument string as 1 character. Previously, it could count as 2 or 3 characters. - The return value of the u8_stpncpy, u16_stpncpy, u32_stpncpy functions was incorrect. - The u8_strcoll, u16_strcoll, u32_strcoll now try harder to give a non-zero return value. * Portability to MacOS X 10.6 and Cygwin 1.7. ------------------------------------------------------------------------------- The port has been compiled using stock djdev203 (patchlevel 2) and consists of the usual three packages that can be downloaded from ftp.delorie.com and mirrors as (time stamp 2014-04-15): GNU libunistring 0.9.3 library, info and man format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns93br2.zip GNU libunistring 0.9.3 dvi, html, ps and pdf format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns93dr2.zip GNU libunistring 0.9.3 source: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns93sr2.zip The binaries have been produced a second time using the stock version of djdev204 beta library. This package is available at ftp.delorie.com and mirrors as (time stamp 2014-04-15): GNU libunistring 0.9.3 binary and man format documentation: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/luns93br2.zip Send suggestions and bug reports concerning the DJGPP port to comp.os.msdos.djgpp or . GNU libunistring specific bugs must be reported to . Enjoy. Guerrero, Juan Manuel P.S.: I have removed the previous port luns93[b|d|s].zip.