world leader in high performance signal processing
Trace: » existing_libraries

Current Libraries

provided by Toolchain

  • uclibc - the microcontroller C library.
  • libbfdsp - A port of Analog Devices' Blackfin signal processing library to gcc (can be used within Linux applications).

provided by uClinux-dist

  • adns - Advanced, easy to use, asynchronous-capable DNS client library and utilities.
  • alsa-lib - Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system.
  • avahi - Avahi is a system which facilitates service discovery on a local network. This means that you can plug your laptop or computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared.
  • blackfin-gsm - assembly optimized version of the GSM codec for the Blackfin
  • bluez-libs - The overall goal of this project is to make an implementation of the Bluetooth™ wireless standards specifications for Linux.
  • cgic - an ANSI C library for CGI Programming
  • crypto++lib - free C++ library for cryptography: includes ciphers, message authentication codes, one-way hash functions, public-key cryptosystems, and key agreement schemes
  • DirectFB - DirectFB is a thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system with support for translucent windows and multiple display layers, not only on top of the Linux Framebuffer Device.
  • dmalloc - The debug memory allocation or dmalloc library has been designed as a drop in replacement for the system's malloc, realloc, calloc, free and other memory management routines while providing powerful debugging facilities configurable at runtime.
  • expat - Expat, a C library for parsing XML
  • FAAD2 - FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
  • ffmpeg - FFmpeg is a complete solution to record, convert and stream audio and video. It includes libavcodec, the leading audio/video codec library.
  • flac - FLAC is an Open Source lossless audio codec
  • flex - fast lexical analyzer generator
  • freetype - FreeType is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output.
  • ftplib - ftplib is a set of routines that implement the FTP protocol. They allow applications to create and access remote files through function calls instead of needing to fork and exec an interactive ftp client program.
  • gnutls - GnuTLS (Transport Layer Security Library) is a project that aims to develop a library which provides a secure layer, over a reliable transport layer.
  • libao - Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms.
  • libares
  • libatm - ATM on Linux
  • libaudio - Audio File Library. This library allows the processing of audio data to and from audio files of many common formats (currently AIFF, AIFF-C, WAVE, NeXT/Sun .snd/.au, IRCAM, AVR, Amiga IFF/8SVX, and NIST SPHERE).
  • libbzip2 - bzip2 is a freely available, patent free (see below), high-quality data compressor.
  • libconfuse - libConfuse is a configuration file parser library, licensed under the terms of the ISC license, and written in C.
  • libcurl - curl is a command line tool for transferring files with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos…), file transfer resume, proxy tunneling and a busload of other useful tricks.
  • libdes - DES encryption library and a DES encryption program. It supports ecb, cbc, ofb, cfb, triple ecb, triple cbc, triple ofb, triple cfb, and MIT`s pcbc encryption modes and also has a fast implementation of crypt(3).
  • libg - The termcap library is the application programmer's interface to the termcap data base
  • libgcrypt - This is a general purpose cryptographic library based on the code from GnuPG.
  • libgmp - GNU MP is a library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers.
  • libgpg-error - Libgpg-error is helper library used by a couple of other projects to provide a common set of error codes and descriptions.
  • libgsasl - 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.
  • libid3tag - ID3 tag manipulation library for extracting mp3 tags
  • libidn - GNU Libidn is an implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group, used for internationalized domain names
  • libipod - a library for managing the Apple iPod
  • libjpeg - sixth public release of the Independent JPEG Group's free JPEG software. Blackfin specific optimizations are explained here.
  • libldap - OpenLDAP, a suite of the Lightweight Directory Access Protocol (v3) servers, clients, utilities, and development tools.
  • libmad is a high-quality MPEG audio decoder. . It currently supports MPEG-1 and the MPEG-2 extension to Lower Sampling Frequencies, as well as the so-called MPEG 2.5 format. All three audio layers (Layer I, Layer II, and Layer III a.k.a. MP3) are fully implemented.
  • libnet - Network interface manipulation
  • libnet -
  • libnetfilter_conntrack - libnetfilter_conntrack is a userspace library providing a programming interface (API) to the in-kernel connection tracking state table.
  • libnetfilter_log - libnetfilter_log is a userspace library providing interface to packets that have been logged by the kernel packet filter
  • libnfnetlink - libnfnetlink is the low-level library for netfilter related kernel/userspace communication. It provides a generic messaging infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log, nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or management tools in userspace.
  • libpam - PAM (Pluggable Authentication Module) library
  • libpcap - system-independent interface for user-level packet capture
  • libpng - is the official PNG reference library. It supports almost all PNG features, is extensible, and has been extensively tested for over ten years.
  • libsdl - Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games.
  • OpenSSL The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. Blackfin performance can be found at libssl
  • libtiff - provides support for the Tag Image File Format (TIFF), a widely used format for storing image data.
  • libupnp - Linux SDK for UPnP Devices v1.2 for UPnP devices and control point applications for Linux
  • libusb - a library for use by user level applications to access USB devices regardless of OS
  • libxml2 - Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform).
  • lzo - LZO is a portable lossless data compression library written, offering pretty fast compression and *extremely* fast decompression.
  • mediastreamer - Mediastreamer is a portable C library that allows you to create and run audio and video streams. It is designed for any kind of voice over IP applications.
  • mpfr - The MPFR library is a C library for multiple-precision floating-point computations with exact rounding (also called correct rounding). It is based on the GMP multiple-precision library.
  • ncurses - The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more.
  • openobex - Free open source implementation of the Object Exchange (OBEX) protocol.
  • ortp - a Real-time Transport Protocol (RFC3550) stack under LGPL
  • pcre - Perl-compatible regular expression library
  • popt - popt command line option parsing library.
  • readline - The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in.
  • SDL_gfx - SDL graphics drawing primitives and other support functions. It provided basic drawing routines such as lines, circles or polygons and SDL_rotozoom which implemented a interpolating rotozoomer for SDL surfaces.
  • SDL_image - SDL_image is an image loading library that is used with the SDL library, and almost as portable. It allows a programmer to use multiple image formats without having to code all the loading and conversion algorithms themselves.
  • SDL_mixer - SDL_mixer is a sound mixing library that is used with the SDL library, and almost as portable.
  • SDL_net - SDL_net is a network library that is used with the SDL library, and almost as portable.
  • SDL_ttf - SDL_ttf is a TrueType font rendering library that is used with the SDL library, and almost as portable.
  • speex - Speex is an Open Source/Free Software patent-free audio compression format designed for speech.
  • sphinxbase - Open Source Speech Recognition Engines
  • sqlite - SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.
  • STLport - STLport is a multiplatform ANSI C++ Standard Library implementation
  • sysfsutils - The library's purpose is to provide a consistant and stable interface for querying system device information exposed through sysfs.
  • tremor - the Ogg Vorbis 'Tremor' integer playback codec.
  • tslib - Tslib is an abstraction layer for touchscreen panel events, as well as a filter stack for the manipulation of those events.
  • zlib - general purpose data compression library

Using Libs in external applications

Installing with toolchain

It can be beneficial to install the built libraries into the toolchain when building packages outside of the uClinux distribution.

$ make vendor_staging_install

This should take all the libraries and install them into the toolchain's default directories so it can find them when it needs to, without adding the extra ”-L” or ”-isystem” flags like the below examples.

Using from staging directory

Some people may not have write access to their toolchain installation directory, and can not do the above, so they should do it like described below.

standalone applications

When compiling the uClinux-dist, the above libraries will be installed into the uClinux-dist/staging directory. To use them in applications which are not part of the uClinux dist:

$ bfin-linux-uclibc-gcc -O2 foo.c -o foo -isystem /path/uClinux-dist/staging/usr/include -L/path/uClinux-dist/staging/usr/lib

autoconf based applications

Or for packages that use autoconf:

$ tar xf <mypkg>.tar.bz2
$ cd <mypkg>
$ CFLAGS='-O2 -pipe -isystem /path/to/staging/usr/include' LDFLAGS='-L/path/to/staging/usr/lib' ./configure --host=bfin-linux-uclibc
$ make
$ make install DESTDIR=/path/to/staging

special libs

Some libraries (like SDL) have their own config manager, which needs to be invoked to provide the proper cflags and linker flags to the project:

$ bfin-linux-uclibc-gcc foo.c -o foo $(./staging/usr/bin/sdl-config --cflags) $(./staging/usr/bin/sdl-config --libs)