Giter Club home page Giter Club logo

bionic's Introduction

The Bionic C Library
=-=-=-=-=-=-=-=-=-=-

This is a fork of the Bionic C Library from the Android Open Source Project.

The original code can be found here[1].

Purpose
=-=-=-=

The purpose of this fork is to allow 3rd party developers to use bionic as
their primary system C library.

The initial port, Gentoo-Bionic[2], mostly focused on Gentoo Linux[3] although
the migration to autotools minimizes that tight coupling. This codebase is
now Linux-distribution-agnostic and therefore can be used (in theory) with any
Linux distribution.

License
=-=-=-=

One of the advantages of using bionic is that it is BSD-licensed (see the file
COPYING). This provides greater flexibility for hardware and software product
vendors when compared with other free-as-in-speach licenses. Indeed, bionic
allows you to have your free-as-in-beer software and use it too.

Since the BSD license has more permissive licensing constraints for API
consumers, people can freely write both open and proprietary software which
links to bionic without much concern of licensing restrictions. However,
please keep in mind, that if Program A links to bionic and Library B,
regardless of whether Library B links to bionic, then Program A still must
abide by the terms and conditions of the Library B software license.

Occasionally, this fork of bionic might incorporate files from other projects
that are similarly permissively licensed. For any questions regarding software
licensing, please email [email protected] .

Modifications
=-=-=-=-=-=-=

1) Use autotools to build rather than the Android build system
2) Use common prefixes for the runtime (e.g. /usr instead of /system)
3) Remove any dependencies on the Android runtime and revert to more
   traditional UNIX practices (e.g. use /etc/resolv.conf instead of
   Android's properties for DNS servers)
4) Add more system calls and libc functions, as appropriate

More information can be found from the original ELC2013 presentation [4].


Happy hacking!


[1] https://android.googlesource.com/platform/bionic.git
[2] https://plus.google.com/113359270067626599390
[3] http://www.gentoo.org
[4] http://elinux.org/images/2/25/2013_elc_gentoo_bionic.pdf

bionic's People

Contributors

andre-rosa avatar bdcgoogle avatar bradfitz avatar cfriedt avatar chrisdearman avatar colincross avatar cwhuang avatar digit-android avatar dougkwan avatar enh-google avatar eugenis avatar fadden avatar gentoobionic avatar gkasten avatar jpa468 avatar jren1 avatar jserv avatar kruton avatar lcolitti avatar marcone avatar mattfischer avatar mdhorn avatar mig1964 avatar mikeandroid avatar mstorsjo avatar nickkral avatar pixelflinger avatar satok16 avatar sesse avatar swetland avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bionic's Issues

Get rid of __FORCE_THUMB2

A completely arbitrary define (__FORCE_THUMB2) was used to hack thumb / thumb2 support. Rather than using a completely arbitrary define, use the more conventional ones, defined in

libc/arch-arm/include/machine/cpu-features.h

Add header install targets

Headers should also be installed to their respective (w.r.t. DESTDIR, prefix) locations.

The kernel header should not be installed in this stage, or it should be optional. This is so that e.g. Gentoo's sys-kernel/bionic-kernel-headers still works.

sys/linux-syscalls.h missing because of python syntax error

This is not related to #28 , but it has a similar symptom; sys/linux-syscalls.h file is also not generated when using python-3.3 (at least with Gentoo/x86). It works by setting the interpreter back to python-2.7 (e.g. eselect set python 1).

python ./libc/tools/gensyscalls.py x86 ./ libc/arch-x86/syscalls > syscalls.stamp
File "./libc/tools/gensyscalls.py", line 22
print "could not find the Bionic root directory. aborting"
...
mkdir -p libc/arch-x86/bionic/
libc/arch-x86/bionic/_exit_with_stack_teardown.S:2:32: fatal error: sys/linux-syscalls.h: No such file or directory
compilation terminated.
libc/arch-x86/bionic/clone.S:2:32: fatal error: sys/linux-syscalls.h: No such file or directory
compilation terminated.
libc/arch-x86/bionic/futex_x86.S:2:32: fatal error: sys/linux-syscalls.h: No such file or directory
compilation terminated.

Add install targets

All files should be installed to their proper (w.r.t. DESTDIR and perfix) directories with the correct permissions.

I expect that $(INSTALL) should be used for this purpose.

Ensure e.g. make -j7 works properly

I'm not sure if it's just issue #10 that is blocking this, but as soon as that gets resolved, this needs to be verified.

All make dependencies should be validated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.