Linux Today: Linux News On Internet Time.

More on LinuxToday

Release Digest: GNU, April 18, 2004

Apr 19, 2004, 05:00 (0 Talkback[s])


How to Help Your Business Become an AI Early Adopter

GNU SASL 0.1.0 alpha


this is to announce that GNU SASL 0.1.0 alpha has been released, earlier than anticipated. This release mark the beginning of a split distribution of GNU SASL, where most of the core library is licensed under the LGPL, and the remaining parts continue to be available under the GPL. This change is made in the hope of getting more help from the community. To help clear up potential misunderstandings about the license change, let me quote part of the README file:

The GNU SASL library is licensed under the GNU Lesser General Public License (LGPL). The GNU project typically uses the GNU General Public License (GPL) for libraries, and not the LGPL, but for this project we decided that we would get more help from the community if we used the LGPL, as other free SASL implementations exists. See also <http://www.gnu.org/licenses/why-not-lgpl.html>;.

However, the command-line application and test suite (src/, and tests/) are licensed under the GNU General Public License license (see COPYING), and the documentation (doc/) is licensed under the GNU Free Documentation License (see COPYING.DOC).

Find below your regular scheduled release announce message.


GNU SASL is an implementation of the Simple Authentication and Security Layer framework and a few common SASL mechanisms. SASL is used by network servers (e.g., IMAP, SMTP) to request authentication from clients, and in clients to authenticate against servers.

The project page of the library is available at:

Here are the compressed sources of the entire package:
ftp://alpha.gnu.org/gnu/gsasl/gsasl-0.1.0.tar.gz (1.6MB)
http://josefsson.org/gsasl/releases/gsasl-0.1.0.tar.gz (1.6MB)

Here are GPG detached signatures using key 0xB565716F:

Here are the compressed sources of the LGPL library (also included above):
ftp://alpha.gnu.org/gnu/gsasl/libgsasl-0.1.0.tar.gz (456KB)
http://josefsson.org/gsasl/releases/libgsasl-0.1.0.tar.gz (456KB)

Here are GPG detached signatures using key 0xB565716F:

Here are the build reports for various platforms:

Here are the MD5/SHA1 checksums:

80adc6e32357595ecadc891be5331483 gsasl-0.1.0.tar.gz
c3b0028670fac2f1a457e2c88eb96978 libgsasl-0.1.0.tar.gz
f84762b70043d11bdc017e6da533eec9358e98e5 gsasl-0.1.0.tar.gz
67542b52bd37752ff24e554bf143ceffede0c468 libgsasl-0.1.0.tar.gz

Noteworthy changes (since 0.0.12, last version announced here):

  • Changes in 0.1.0 (released 2004-04-16)
    • The library re-licensed to LGPL and distributed as a separate package. This means a fork of this NEWS file, all the entries below relate to the combined work of earlier versions. New entries above does not document user visible changes for the library ("libgsasl"), for that see NEWS in the lib/ sub-directory, which is also distributed as a stand-alone package.
  • Changes in 0.0.14 (released 2004-01-22)
    • Moved all mechanism specific code into sub-directories of lib/. Each backend is built into its own library (e.g., libgsasl-plain.so), to facilitate future possible use of dlopen to dynamically load backends.
    • Moved compatibility files (getopt*) to gl/, and added more (strdup*).
  • Changes in 0.0.13 (released 2004-01-17)
    • Nettle (the crypto functionality, crypto/) has been updated. This fixes two portability issues, the new code should work on platforms that doesn't have inttypes.h and alloca.

GDB 6.1

GDB 6.1 released!

Version 6.1 of GDB, the GNU Debugger, is now available via anonymous FTP. GDB is a source-level debugger for C, C++, Pascal, Objective-C and many other languages. GDB can target (i.e., debug programs running on) more than a dozen different processor architectures, and GDB itself can run on most popular GNU/Liinux, Unix and Microsoft Windows variants.

You can download GDB from Project GNU's FTP server in the directory:


The previous version, 6.0, was released roughly 6 months ago; and in that time several new features have been added and many bugs have been fixed. The details are below. In addition, a number of late breaking problems have been identified and they are also mentioned below.

The vital stats:

Size md5sum Name
16693869 f707d21f5a3e963ce059caed75e899a2 gdb-6.1.tar.gz

There is a web page for GDB at:


That page includes information about GDB mailing lists (an announcement mailing list, developers discussion lists, etc.), details on how to access GDB's CVS repository, locations for development snapshots, preformatted documentation, and links to related information around the net. We will put errata notes and host-specific tips for this release on-line as any problems come up. All mailing lists archives are also browsable via the web.

Many people have contributed to this release. Thanks to everybody for the help!

Keep those fixes and improvements coming in! (See http://www.gnu.org/software/gdb/bugs/)

Andrew Cagney
on behalf of the GDB Developers.

  • Changes in GDB 6.1:
    • Removed --with-mmalloc

Support for the mmalloc memory manager has been removed, as it conflicted with the internal gdb byte cache.

  • Changes in AMD64 configurations

The AMD64 target now includes the %cs and %ss registers. As a result the AMD64 remote protocol has changed; this affects the floating-point and SSE registers. If you rely on those registers for your debugging, you should upgrade gdbserver on the remote side.

  • Revised SPARC target

The SPARC target has been completely revised, incorporating the FreeBSD/sparc64 support that was added for GDB 6.0. As a result support for LynxOS and SunOS 4 has been dropped. Calling functions from within GDB on operating systems with a non-executable stack (Solaris, OpenBSD) now works.

  • New C++ demangler

GDB has a new C++ demangler which does a better job on the mangled names generated by current versions of g++. It also runs faster, so with this and other changes gdb should now start faster on large C++ programs.

  • DWARF 2 Location Expressions

GDB support for location expressions has been extended to support function arguments and frame bases. Older versions of GDB could crash when they encountered these.

  • C++ nested types and namespaces

GDB's support for nested types and namespaces in C++ has been improved, especially if you use the DWARF 2 debugging format. (This is the default for recent versions of GCC on most platforms.) Specifically, if you have a class "Inner" defined within a class or namespace "Outer", then GDB realizes that the class's name is "Outer::Inner", not simply "Inner". This should greatly reduce the frequency of complaints about not finding RTTI symbols. In addition, if you are stopped at inside of a function defined within a namespace, GDB modifies its name lookup accordingly.

  • New native configurations
NetBSD/amd64 x86_64-*-netbsd*
OpenBSD/amd64 x86_64-*-openbsd*
OpenBSD/alpha alpha*-*-openbsd*
OpenBSD/sparc sparc-*-openbsd*
OpenBSD/sparc64 sparc64-*-openbsd*
  • New debugging protocols
M32R with SDI protocol m32r-*-elf*
  • "set prompt-escape-char" command deleted.

The command "set prompt-escape-char" has been deleted. This command, and its very obscure effet on GDB's prompt, was never documented, tested, nor mentioned in the NEWS file.

  • OBSOLETE configurations and files

Configurations that have been declared obsolete in this release have been commented out. Unless there is activity to revive these configurations, the next release of GDB will have their sources permanently REMOVED.

Sun 3, running SunOS 3 m68*-*-sunos3*
Sun 3, running SunOS 4 m68*-*-sunos4*
Sun 2, running SunOS 3 m68000-*-sunos3*
Sun 2, running SunOS 4 m68000-*-sunos4*
Motorola 680x0 running LynxOS m68*-*-lynxos*
AT&T 3b1/Unix pc m68*-att-*
Bull DPX2 (68k, System V release 3) m68*-bull-sysv*
decstation mips-dec-* mips-little-*
riscos mips-*-riscos* mips-*-sysv*
sonymips mips-sony-*
sysv mips*-*-sysv4* (IRIX 5/6 not included)
  • REMOVED configurations and files
SGI Irix-4.x mips-sgi-irix4 or iris4
SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
Z8000 simulator z8k-zilog-none or z8ksim
Matsushita MN10200 w/simulator mn10200-*-*
H8/500 simulator h8500-hitachi-hms or h8500hms
HP/PA running BSD hppa*-*-bsd*
HP/PA running OSF/1 hppa*-*-osf*
HP/PA Pro target hppa*-*-pro*
PMAX (MIPS) running Mach 3.0 mips*-*-mach3*
386BSD i[3456]86-*-bsd*
Sequent family i[3456]86-sequent-sysv4*
SPARC running LynxOS sparc-*-lynxos*
SPARC running SunOS 4 sparc-*-sunos4*
Tsqware Sparclet sparclet-*-*
Fujitsu SPARClite sparclite-fujitsu-none or sparclite

Known problems in GDB 6.1

See also: http://www.gnu.org/software/gdb/bugs/

  • Build problems

build/1458: comple failed on hpux11

GDB 6.1 is known to have build problems on HP/UX 11.00 using the vendor supplied compilers (GDB does build on HP/UX 11.11, and using GCC).

  • Misc

gdb/1560: Control-C does not always interrupt GDB.

When GDB is busy processing a command which takes a long time to complete, hitting Control-C does not have the expected effect. The command execution is not aborted, and the "QUIT" message confirming the abortion is displayed only after the command has been completed.

  • C++ support

gdb/931: GDB could be more generous when reading types C++ templates on input

When the user types a template, GDB frequently requires the type to be typed in a certain way (e.g. "const char*" as opposed to "const char *" or "char const *" or "char const*").

gdb/1512: no canonical way to output names of C++ types

We currently don't have any canonical way to output names of C++ types. E.g. "const char *" versus "char const *"; more subtleties arise when dealing with templates.

gdb/1516: [regression] local classes, gcc 2.95.3, dwarf-2

With gcc 2.95.3 and the dwarf-2 debugging format, classes which are defined locally to a function include the demangled name of the function as part of their name. For example, if a function "foobar" contains a local class definition "Local", gdb will say that the name of the class type is "foobar__Fi.0:Local".

This applies only to classes where the class type is defined inside a function, not to variables defined with types that are defined somewhere outside any function (which most types are).

gdb/1588: names of c++ nested types in casts must be enclosed in quotes

You must type
(gdb) print ('Foo::Bar') x
(gdb) print ('Foo::Bar' *) y
instead of
(gdb) print (Foo::Bar) x
(gdb) print (Foo::Bar *) y

gdb/1091: Constructor breakpoints ignored
gdb/1193: g++ 3.3 creates multiple constructors: gdb 5.3 can't set breakpoints

When gcc 3.x compiles a C++ constructor or C++ destructor, it generates 2 or 3 different versions of the object code. These versions have unique mangled names (they have to, in order for linking to work), but they have identical source code names, which leads to a great deal of confusion. Specifically, if you set a breakpoint in a constructor or a destructor, gdb will put a breakpoint in one of the versions, but your program may execute the other version. This makes it impossible to set breakpoints reliably in constructors or destructors.

gcc 3.x generates these multiple object code functions in order to implement virtual base classes. gcc 2.x generated just one object code function with a hidden parameter, but gcc 3.x conforms to a multi-vendor ABI for C++ which requires multiple object code functions.

  • Stack backtraces

GDB's core code base has been updated to use a new backtrace mechanism. This mechanism makes it possible to support new features such DWARF 2 Call Frame Information (which in turn makes possible backtraces through optimized code).

Since this code is new, it is known to still have a few problems:

gdb/1505: [regression] gdb prints a bad backtrace for a thread

When backtracing a thread, gdb does not stop when it reaches the outermost frame, instead continuing until it hits garbage. This is sensitive to the operating system and thread library.


The MIPS and HPPA backtrace code has only very recently been updated to use GDB's new frame mechanism. At present there are still a few problems, in particular backtraces through signal handlers do not work.

People encountering problems with these architectures should consult GDB's web pages and mailing lists (http://www.gnu.org/software/gdb/) to see if there are updates.


PowerPC architecture support, in 6.1, does not use the new frame code.

Fortunately, PowerPC architecture support, in GDB's mainline sources, have been updated. People encountering problems should consider downloading a more current snapshot of GDB (http://www.gnu.org/software/gdb/current/).


We are pleased to announce the availability of Libgcrypt 1.2.0, which is the first stable release of this general purpose crypto library based on GnuPG code.

Note, that Libgcrypt is neither a replacement for GnuPG nor does it contain a library version of GnuPG. It is only of interest for developers of crypto applications with a need for crypto building blocks available under the GNU Lesser General Public License.

Complete source packages:

ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.2.0.tar.gz (927k)

Patch against version 1.9.94:

ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/libgcrypt-1.1.94-1.2.0.diff.gz (246k)

Mirrors are listed at http://www.gnupg.org/download/mirrors.html.

MD5 sums are:

5c508072d8387ce17d1ab05075c2be40 libgcrypt-1.2.0.tar.gz
a1657523beebf926ca7992cc6b9ea9b5 libgcrypt-1.1.94-1.2.0.diff.gz

Except for one bug fix this release is basically equivalent to the last pre-release.

Thanks to all who have worked on Libgcrypt (and thanks to those who have worked on other things as well).

Happy hacking.


Moritz Schulte g10 Code GmbH http://www.g10code.com
-=- The GnuPG Experts -=-