www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-announce/2014/04/19/23:14:50

Message-Id: <201404200314.s3K3Eer2006069@delorie.com>
Date: Sun, 20 Apr 2014 05:02:07 +0200
From: Juan Manuel Guerrero <juan DOT guerrero AT gmx DOT de>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: release 2 of DJGPP port of GNU libunistring 0.9.3 uploaded.
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:
<ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/licv114br2.zip>
   and for DJGPP 2.04 as:
<ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/licv114br2.zip>
   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 <djgpp AT delorie DOT com>. GNU libunistring specific bugs
   must be reported to <bug-libunistring AT gnu DOT org>.


   Enjoy.

     Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>


P.S.:  I have removed the previous port luns93[b|d|s].zip.

- Raw text -


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