archive-org.com » ORG » U » UCLIBC.ORG

Total: 63

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • uClibc
    is also a mailing list for source commits for people wishing to read the complete diff of each and every change to uClibc not for the faint of heart Active developers can subscribe by visiting this page The Git server is the only one permitted to post to this list And yes this list name uses the word cvs even though we don t use that anymore Search the List

    Original URL path: http://www.uclibc.org/lists.html (2015-03-26)
    Open archived version from archive


  • uClibc
    re doing it wrong To make the e mail process simpler you should set the mailing list in your git repo accordingly run this in the checked out repo git config add sendemail to uclibc uclibc org When writing a changelog for your commit you should use the proper changelog format to ensure nice workflows with other git commands This format is fairly strict and unlike centralized scm s you might be familiar with such as svn or cvs Note that the Signed off by tag can easily be added by using the s option when running git commit the first line is a short one liner summary After a blank line you should use complete sentences with lines properly wrapped at e mail lengths You should also include relevant information such as output from tools showing errors After all of your explanatory text there should be another blank line and then the relevant tags Signed off by CC etc Signed off by Your Full Name your real email address com Once you have a properly written changelog use git format patch to turn a commit into an e mail You can then edit the patch to add additional info after the triple dash which comes after the commit tags the triple dash above is used to mark the end of the changelog and the start of any additional comments that should not be included in the changelog that may include things like changes in the proposed patch itself or random questions for people New Developers To obtain commit access you will need to demonstrate you are serious by submitting a few good patches first This is accomplished via our Mailing Lists So you ve contributed quite a bit and you re still here Let s move on then There s the fun logistic issues to work out first so here s the new developer check list Your preferred username for committing to the server Your preferred e mail address for contact Your public ssh key should be ssh version 2 key with 2048 bits the default or preferably more If you do not have a public ssh key then you can easily generate one Simply use the command ssh keygen b 4096 This will output the files id rsa your private key do not give this to anyone and id rsa pub your public key give this to me By default both files will be placed in your home directory in the ssh subdir While not required you should also create an account on our Bug Tracker When you have simply e mail me the username on the tracker so that you can have your account settings changed from the default reporter to developer this allows you to make changes to all bug reports Committing Once you are setup with an account you will need to use your account to checkout a copy of uClibc git clone ssh username uclibc org git uClibc git It goes without saying you

    Original URL path: http://www.uclibc.org/developing.html (2015-03-26)
    Open archived version from archive

  • uClibc
    Scratchbox OpenEmbedded uCdot LinuxDevices Slashdot Freshmeat Linux Today Linux Weekly News Linux HOWTOs Other Open Source C libraries I am currently aware of the following open source C libraries The GNU C Library The FreeBSD C Library The NetBSD C Library The OpenBSD C Library The OpenDarwin C Library dietlibc newlib Al s FREE C Runtime Library A Maromaty 21 Apr 1998 the minix C library and there is a

    Original URL path: http://www.uclibc.org/other_libs.html (2015-03-26)
    Open archived version from archive

  • Index of /downloads
    13 Jan 2010 21 49 2 2M uClibc 0 9 30 2 tar bz2 sign 13 Jan 2010 21 49 563 uClibc 0 9 30 2 tar xz 13 Jan 2010 21 50 1 7M uClibc 0 9 30 2 tar xz sign 13 Jan 2010 21 50 560 uClibc 0 9 30 3 tar bz2 12 Mar 2010 19 42 2 2M uClibc 0 9 30 3 tar bz2 sign 12 Mar 2010 20 16 563 uClibc 0 9 30 3 tar xz 12 Mar 2010 19 49 1 7M uClibc 0 9 30 3 tar xz sign 12 Mar 2010 20 16 560 uClibc 0 9 30 tar bz2 12 Nov 2008 12 28 2 2M uClibc 0 9 30 tar bz2 sign 12 Nov 2008 12 31 553 uClibc 0 9 30 tar gz 12 Nov 2008 12 28 3 0M uClibc 0 9 30 tar gz sign 12 Nov 2008 12 31 550 uClibc 0 9 31 1 tar bz2 08 Jun 2011 19 00 2 2M uClibc 0 9 31 1 tar bz2 sign 08 Jun 2011 19 01 661 uClibc 0 9 31 1 tar xz 08 Jun 2011 19 00 1 8M uClibc 0 9 31 1 tar xz sign 08 Jun 2011 19 01 657 uClibc 0 9 31 tar bz2 02 Apr 2010 15 42 2 2M uClibc 0 9 31 tar bz2 sign 02 Apr 2010 15 49 557 uClibc 0 9 31 tar xz 02 Apr 2010 15 42 1 8M uClibc 0 9 31 tar xz sign 02 Apr 2010 15 49 554 uClibc 0 9 32 rc1 tar bz2 17 Dec 2010 19 07 2 6M uClibc 0 9 32 rc1 tar bz2 sign 17 Dec 2010 19 10 569 uClibc 0 9 32 rc1 tar xz 17 Dec 2010 19 08 2 1M uClibc 0 9 32 rc1 tar xz sign 17 Dec 2010 19 10 566 uClibc 0 9 32 rc2 tar bz2 20 Jan 2011 15 44 2 6M uClibc 0 9 32 rc2 tar bz2 sign 21 Jan 2011 09 06 569 uClibc 0 9 32 rc2 tar xz 20 Jan 2011 15 44 2 1M uClibc 0 9 32 rc2 tar xz sign 21 Jan 2011 09 06 566 uClibc 0 9 32 rc3 tar bz2 16 Mar 2011 19 32 2 7M uClibc 0 9 32 rc3 tar bz2 sign 16 Mar 2011 19 32 669 uClibc 0 9 32 rc3 tar xz 16 Mar 2011 19 32 2 2M uClibc 0 9 32 rc3 tar xz sign 16 Mar 2011 19 32 665 uClibc 0 9 32 1 tar bz2 30 Dec 2011 11 13 2 7M uClibc 0 9 32 1 tar bz2 sign 30 Dec 2011 11 15 661 uClibc 0 9 32 1 tar xz 30 Dec 2011 11 14 2 1M uClibc 0 9 32 1 tar xz sign 30 Dec 2011 11 15 657 uClibc 0 9 32 tar bz2 08 Jun 2011 19 36

    Original URL path: http://www.uclibc.org/downloads/ (2015-03-26)
    Open archived version from archive

  • uClibc
    Several problems have been fixed up gcc has been updated to version 3 3 1 binutils was updated to 2 14 90 0 6 and tada everything finally works for cross compiling These were all cross compiled which really makes things faster since the older mipsel releases used to take 2 days to build These are 100 MB ext2 filesystems that run natively on the specified architecture They contains all the development software you need to build your own uClibc applications including bash coreutils findutils diffutils patch sed ed flex bison file gawk tar grep gdb strace make gcc g autoconf automake ncurses zlib openssl openssh perl and more And of course everything is dynamically linked against uClibc By using a uClibc only system you can avoid all the painful cross configuration problems that have made using uClibc somewhat painful in the past If you want to quickly get started with testing or using uClibc you should give these images a try You can loop mount and them you can chroot into them you can boot into with using user mode Linux and you can even dd them to a spare partition and use resize2fs to make them fill the drive Whatever works for you If you would like to build your own custom uClibc system you can use buildroot which is how these uClibc development systems were created 9 September 2003 uClibc 0 9 21 Released CodePoet Consulting is pleased to announce the immediate availability of uClibc 0 9 21 This release has been brewing for several months now and provides quite a lot of additional functionality and quite a few bug fixes as well Many people will be pleased that this release fixes the dlopen ing libraries that depend on libraries problem The biggest thing in this release and I do mean that literally is that uClibc now has full ANSI ISO C99 locale support Well except for wcsftime and collating items in regex which are not done yet Adding support for the default set of locales 169 UTF 8 locales and 144 locales using other codesets will enlarge uClibc by around 300k Still if you need locale support that is still much better than the roughly 30MB the comparable set of locale date occupies with glibc And you can of course reduce the 300k by reducing the number of supported locales As usual this release has many improvements both large and small At this point most applications that compile and work with glibc will also compile and run with uClibc Both Perl and Python pass all the tests in their test suites both with and without locale support enabled We invite you to grab a copy of the latest Linux Test Project test suite and give uClibc some abuse We are not yet perfect but we are getting pretty darn close This release is not binary compatible with earlier releases Depending on your configuration you may actually still be binary compatible but it would be a good idea to recompile your applications when moving to the uClibc 0 9 21 release We are sorry about that but we have never promised to provide binary compatibility until we hit version 1 0 And even then if you change your uClibc configuration you still still generally need to recompile As usual the Changelog detailed changelog and source code for this release are available here Updated uClibc development systems using uClibc 0 9 21 will be made available within a few days 30 June 2003 uClibc 0 9 20 Released CodePoet Consulting is pleased to announce the immediate availability of uClibc 0 9 20 This is primarily a bug fix release This release remains binary compatible with 0 9 18 and 0 9 19 as long as you leave the new UCLIBC HAS TM EXTENSIONS option disabled so you don t have to recompile everything if you don t really feel like it This release has many small improvements At this point most applications that compile and work with glibc will also compile and run with uClibc Perl and Python even pass all the tests in their test suites There is currently one notable exception Applications that use dlopen to load libraries that themselves depend on other libraries may have weak symbols within those depended upon libraries resolved incorrectly This problem is currently being worked on Other than that everything seems to now be working as expected As usual the Changelog detailed changelog and source code for this release are available here 30 June 2003 dev systems updated to uClibc 0 9 20 The uClibc development systems for i386 powerpc arm mips have been updated to uClibc 0 9 20 Several problems have been fixed up gcc has been updated to version 3 3 and Perl 5 8 0 is now included This is a 150 MB ext2 filesystem that runs natively on the specified architecture It contains all the development software you need to build your own uClibc applications including bash coreutils findutils diffutils patch sed ed flex bison file gawk tar grep gdb strace make gcc g autoconf automake ncurses zlib openssl openssh perl and more And of course everything is dynamically linked against uClibc By using a uClibc only system you can avoid all the painful cross configuration problems that have made using uClibc somewhat painful in the past If you want to quickly get started with testing or using uClibc you should give these images a try You can loop mount and then chroot into them you can boot into them using user mode Linux and you can even dd them to a spare partition and use resize2fs to make them fill the drive Whatever works for you If you would like to build your own custom uClibc system you can use buildroot which is how the uClibc development systems were created 6 March 2003 development system updates The uClibc development systems for i386 powerpc arm and now for the first time mips have been updated to uClibc 0 9 19 Several smaller problems have also been fixed up This is an ext2 filesystem that runs natively on the specified architecture It contains all the development software you need to build your own uClibc applications including bash coreutils findutils diffutils patch sed ed flex bison file gawk tar grep gdb strace make gcc g autoconf automake ncurses zlib openssl openssh and more And of course everything is dynamically linked against uClibc By using a uClibc only system you can avoid all the painful cross configuration problems that have made using uClibc somewhat painful in the past If you want to quickly get started with testing or using uClibc you should give these images a try You can loop mount and then chroot into them you can boot into them using user mode Linux you can even dd them to a spare partition and use resize2fs to make them fill the drive Whatever works best for you Have Fun 3 March 2003 uClibc 0 9 19 Released CodePoet Consulting is pleased to announce the immediate availability of uClibc 0 9 19 This is once again primarily a bug fix release Several critical problems with system calls were fixed the pthreads library was improved debugging of applications using uClibc s pthreads library is now possible requires gdb 5 3 or newer that is compiled using uClibc and a number of other random fixes are included This release retains binary compatibility with uClibc 0 9 18 except for mips which didn t work properly with uClibc 0 9 18 anyways Updated development system images compiled with uClibc 0 9 19 will be released shortly As usual the Changelog and source code for this release are available here 17 February 2003 development system updates The uClibc development systems for i386 and powerpc and arm have been again updated This time around a few broken symlinks one preventing C code from compiling have been fixed several system calls related to uids and gid have been fixed the powerpc system call mechanism has been updated and GNU tar and GNU grep have been added gcc gcc ssh etc are all still included and things remain binary compatible with uClibc 0 9 18 Have Fun 12 February 2003 development system updates The uClibc development system has had a number of problems fixed and has been updated for uClibc 0 9 18 The i386 and powerpc and arm devel systems are updated and ready to download and use Have Fun 12 February 2003 uClibc 0 9 18 Released CodePoet Consulting is pleased to announce the immediate availability of uClibc 0 9 18 This is primarily a bug fix release as there were a few directory handling problem that could cause application using uClibc 0 9 17 to either segfault or lose the first character when reading directry names Unfortunately once again this release is NOT binary compatible with earlier uClibc releases I think this will be the last time with the possible exception of some future changes to our locale support As usual the Changelog and source code for this release are available here You might want to download uClibc from the closest kernel org mirror site Just pick the closest mirror site and then go to http www XX kernel org pub linux libs uclibc to download uClibc where XX is your two letter country code 25 January 2003 uClibc 0 9 17 Released CodePoet Consulting is pleased to announce the immediate availability of uClibc 0 9 17 The biggest piece of news with this release thanks to Manuel Novoa s continuing hard work is that we now have fully standards compliant locale support optional of course The support works nicely though configuring the locales you wish to support is still manual a task for the next release Full locale data for over 300 locales adds approximately 250k The collation data for all supported locales is roughly 180k This may seem rather large to some but it is much smaller than the approximately 40 MB needed by Glibc to provide the same data And if you don t need it you can either disable locale support entirely or enable a smaller set of locales This release also fixes lots and lots of bugs The arm architecture support I am embarrassed to note was totally broken in the last release but is now working as expected A security problem a buffer overflow in getlogin r was fixed And there were architecture updates across the board x86 arm powerpc cris h8300 sparc and mips And of course this release includes the usual pile of bug fixes Many thanks for the large number of patches and fixes that were contributed Unfortunately this release is not binary compatible with earlier uClibc releases As noted as item 3 here uClibc does not yet attempt to ensure binary compatibility across releases We will eventually do that once we reach the 1 0 release but not yet A few bugs turned up that needed to be fixed and the only good way to fix them was to change some fundamental data structure sizes As a result this release is NOT binary compatible with earlier releases you will need to recompile your applications The x86 arm powerpc and mips architectures i e the systems Erik has available in his office for testing have been tested and are known to work following this change Other architectures may need additional updates Sorry about that but it had to be done As usual the Changelog and source code for this release are available here You might want to download uClibc from the closest kernel org mirror site Just pick the closest mirror site and then go to http www XX kernel org pub linux libs uclibc to download uClibc where XX is your two letter country code 25 January 2003 dev system updates arm image released A number of additional problems have been fixed and the arm build is now finally compiling and working as expected As such I have updated the i386 development system image the powerpc development system image and I am also releasing upon an unsuspecting world the brand new arm development system image Have fun All three development system images were compiled and built using the stock buildroot system These were also built using the about to be announced in a couple on minutes uClibc 0 9 17 release so if you want to begin compiling and testing stuff with uClibc but you don t feel like spending the hours it takes to download configure and build your own uClibc based development system then you may want to download these and give them a try They each contain a 100 MB ext2 filesystem with everything you need to begin compiling your own applications I have at least minimally tested each of them and verified that the included gcc and g compilers produce working uClibc linked executables Oh and I have also have updated the uClibc gcc toolchain builders so if you just want a simple uClibc gcc toolchain one of these should work for you 10 January 2003 dev system updates powerpc image released A few problems showed up in yesterday s development system release adduser was broken gdb didn t work libstdc shared libs were missing etc So I ve updated the i386 development system image to fix these problems Also the powerpc development system image has finally finished compiling and is now released upon an unsuspecting world Have fun 9 January 2003 uClibc development system released CodePoet Consulting i e Erik has been working hard on buildroot recently and is pleased to offer a full stand alone uClibc only development system This is an ext2 filesystem for i386 containing all the development software you need to build your own uClibc applications With bash awk make gcc g autoconf automake ncurses zlib openssl openssh gdb strace valgrind busybox GNU coreutils and more this should have pretty much everything you need to get started building your own applications linked against uClibc By using a uClibc only system you can avoid all the painful cross configuration problems that have made using uClibc somewhat painful in the past A powerpc and an arm version are in progress Expect them to be released shortly The uClibc development system is an 18MB bzip2 compressed ext2 filesystem so be prepared to wait if you are on a slow link If you wish to have more space you can loop mount it and cp a the contents to their own partition or do what I did WARNING the following can be very dangerous Please be sure you know what you are doing before trying this I am not responsible if you lose all your important data I had a spare hard drive in my case dev hdg but you ll want to adapt this to your own needs so I partitioned it with a single ext2 partition filling the drive in my case dev hdg1 Then I ran bzcat root fs i386 bz2 dd of dev hdg1 e2fsck f dev hdg1 resize2fs p dev hdg1 which overwrote everything on dev hdg with the new uClibc devel system and then expanded the filesystem with the uClibc devel system till it filled the whole drive 8 November 2002 uClibc 0 9 16 Released CodePoet Consulting is pleased to announce the immediate availability of uClibc 0 9 16 This release adds full support including a native shared library loader for the CRIS architecture contributed by Tobias Anderberg Stefan Allius contributed a number of patches to fix the initialization order for shared library global constructors and destructors as well as a large number of SuperH fixes and cleanups uClibc now compiles with newer versions of gcc i e RedHat 8 0 Thanks to Christian Michon uClibc no longer requires perl to compile Steven J Hill fixed dlopen for mips Several problems with pty and tty handling were fixed Manuel Novoa added new support for an etc TZ file to globally set the system timezone and fixed up a number of remaining wide char issues Manuel is still hard at work on bringing full locale support optional of course to uClibc And of course this release includes the usual pile of bug fixes Many thanks for the large number of patches and fixes that were contributed Erik and Manuel have been working on a document describing some of the differences between uClibc and glibc It s not yet 100 complete and it hasn t been nicely formatted yet But it contains a lot of helpful information and is worth a look And finally the the old uClibc configuration system has been completely removed and there was much rejoicing It was replaced with an entirely new system based on LinuxKernelConf which has since been included into Linux 2 5 45 so it looks like Erik made the right choice Of course those who have existing build systems using uClibc will need to make a few changes We think the change is worth it As usual the Changelog and source code for this release are available here You might want to download uClibc from the closest kernel org mirror site Just pick the closest mirror site and then go to http www XX kernel org pub linux libs uclibc to download uClibc where XX is your two letter country code Updated gcc 3 2 and gcc 2 95 toolchains will be released shortly 16 September 2002 gcc 3 2 and gcc 2 95 toolchains released CodePoet Consulting i e Erik has released updated gcc 3 2 and gcc 2 95 uClibc toolchains These toolchains build real gcc cross compilers i e not just a wrapper and create executables linked vs uClibc The new gcc 3 2 provides uClibc support with the latest and greatest compiler available from the gcc team The gcc 2 95 toolchain has been updated to the latest version of uClibc and now provides full C support using the STLport

    Original URL path: http://www.uclibc.org/oldnews.html (2015-03-26)
    Open archived version from archive


  • HAVE NOTHING BETTER TO DO REGARDLESS YOU GET TO KEEP BOTH PIECES IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE THIS WEBSITE AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THIS WEBSITE INCLUDING

    Original URL path: http://www.uclibc.org/copyright.txt (2015-03-26)
    Open archived version from archive


  • is immediately prior to the first TLS block Code sequence Reloc Sym addi 9 2 x1 tprel R PPC TPREL16 x1 addis 9 2 x2 tprel ha R PPC TPREL16 HA x2 addi 9 9 x2 tprel l R PPC TPREL16 LO x2 5 x PowerPC32 Linker Optimizations The linker transformations for PowerPC32 are quite straightforward since all the relevant code sequences are two instructions long 5 x 1 General Dynamic To Initial Exec Code sequence Reloc Sym addi 3 31 x got tlsgd R PPC GOT TLSGD16 x bl tls get addr R PPC REL24 tls get addr GOT n R PPC DTPMOD32 x GOT n 1 R PPC DTPREL32 x is replaced by lwz 3 x got tprel 31 R PPC GOT TPREL16 x add 3 3 2 GOT n R PPC TPREL32 x The linker relies on this sequence being emitted without intervening instructions A register other than r31 may be used as the GOT pointer 5 x 2 General Dynamic To Local Exec Code sequence Reloc Sym addi 3 31 x got tlsgd R PPC GOT TLSGD16 x bl tls get addr R PPC REL24 tls get addr GOT n R PPC DTPMOD32 x GOT n 1 R PPC DTPREL32 x is replaced by addis 3 2 x tprel ha R PPC TPREL16 HA x addi 3 3 x tprel l R PPC TPREL16 LO x The linker relies on this sequence being emitted without intervening instructions A register other than r31 may be used as the GOT pointer 5 x 3 Local Dynamic to Local Exec In this case the function call is replaced with an equivalent code sequence As shown following dtprel sequences are left unchanged Code sequence Reloc Sym addi 3 31 x1 got tlsld R PPC GOT TLSLD16 x1 bl tls get addr R PPC REL24 tls get addr addi 9 3 x1 dtprel R PPC DTPREL16 x1 addis 9 3 x2 dtprel ha R PPC DTPREL16 HA x2 addi 9 9 x2 dtprel l R PPC DTPREL16 LO x2 GOT n R PPC DTPMOD32 x1 GOT n 1 is replaced by addis 3 2 L tprel ha R PPC TPREL16 HA linker generated local sym addi 3 3 L tprel l R PPC TPREL16 LO linker generated local sym addi 9 3 x1 dtprel R PPC DTPREL16 x1 addis 9 3 x2 dtprel ha R PPC DTPREL16 HA x2 addi 9 9 x2 dtprel l R PPC DTPREL16 LO x2 The linker generated local sym points to the start of the thread storage block plus 0x7000 In practice a section symbol with a suitable offset will be used The linker relies on code for the tls get addr call being emitted without intervening instructions A register other than r31 may be used as the GOT pointer 5 x 4 Initial Exec To Local Exec Code sequence Reloc Sym lwz 9 x got tprel 31 R PPC GOT TPREL16 x add 9 9 x tls R PPC64 TLS x GOT n R

    Original URL path: http://www.uclibc.org/docs/tls-ppc.txt (2015-03-26)
    Open archived version from archive


  • x2 tprel l R PPC64 TPREL16 LO x2 Since these two code sequences don t use the GOT the PowerOpen compatible syntax is identical 5 x PowerPC64 Linker Optimizations Linker transformations for PowerPC64 are complicated by there being two assembler syntaxes When using the PowerPC64 ELF flavour syntax GOT generation is under control of the linker so it is possible to remove and replace unused GOT entries For instance the GD IE transformation results in two entries a DTPMOD64 and DTPREL64 being replaced with a single TPREL64 entry The transformation process is considerably more difficult for the linker when using the PowerOpen compatible syntax as the linker needs to search TOC section relocs to map from the local sym LC0 and LC1 in the examples to the variable Currently no compaction of the TOC is done by the linker when transforming PowerOpen compatible code and it is fortunate that if transforming for a given symbol that we transform all references for the symbol If that were not the case we might need to add to the TOC rather than just modify an entry 5 x 1 General Dynamic To Initial Exec ELF syntax Code sequence Reloc Sym addi 3 2 x got tlsgd R PPC64 GOT TLSGD16 x bl tls get addr R PPC64 REL24 tls get addr nop GOT n R PPC64 DTPMOD64 x GOT n 1 R PPC64 DTPREL64 x is replaced by ld 3 x got tprel 2 R PPC64 GOT TPREL16 DS x nop add 3 3 13 GOT n R PPC64 TPREL64 x The linker relies on code being emitted exactly as shown 5 x 2 General Dynamic To Local Exec ELF syntax This transformation is only performed by the linker when the symbol is within 2G 28K of the thread pointer In other cases the GD IE transformation is used as that handles any offset Code sequence Reloc Sym addi 3 2 x got tlsgd R PPC64 GOT TLSGD16 x bl tls get addr R PPC64 REL24 tls get addr nop GOT n R PPC64 DTPMOD64 x GOT n 1 R PPC64 DTPREL64 x is replaced by addis 3 13 x tprel ha R PPC64 TPREL16 HA x nop addi 3 3 x tprel l R PPC64 TPREL16 LO x The linker relies on code being emitted exactly as shown 5 x 3 Local Dynamic to Local Exec ELF syntax In this case the function call is replaced with an equivalent code sequence As shown following dtprel sequences are left unchanged Code sequence Reloc Sym addi 3 2 x1 got tlsld R PPC64 GOT TLSLD16 x1 bl tls get addr R PPC64 REL24 tls get addr nop addi 9 3 x1 dtprel R PPC64 DTPREL16 x1 addis 9 3 x2 dtprel ha R PPC64 DTPREL16 HA x2 addi 9 9 x2 dtprel l R PPC64 DTPREL16 LO x2 ld 9 x3 got dtprel 2 R PPC64 GOT DTPREL16 DS x3 add 9 9 3 GOT n R PPC64 DTPMOD64 x1 GOT n 1 GOT m R PPC64 DTPREL64 x3 is replaced by addis 3 13 L tprel ha R PPC64 TPREL16 HA linker generated local sym nop addi 3 3 L tprel l R PPC64 TPREL16 LO linker generated local sym addi 9 3 x1 dtprel R PPC64 DTPREL16 x1 addis 9 3 x2 dtprel ha R PPC64 DTPREL16 HA x2 addi 9 9 x2 dtprel l R PPC64 DTPREL16 LO x2 ld 9 x3 got dtprel 2 R PPC64 GOT DTPREL16 DS x3 add 9 9 3 GOT m R PPC64 DTPREL64 x3 The linker generated local sym points to the start of the thread storage block plus 0x7000 In practice a section symbol with a suitable offset will be used The linker relies on code for the tls get addr call being emitted exactly as shown 5 x 4 Initial Exec To Local Exec ELF syntax This transformation is only performed by the linker when the symbol is within 2G 28K of the thread pointer Code sequence Reloc Sym ld 9 x got tprel 2 R PPC64 GOT TPREL16 DS x add 9 9 x tls R PPC64 TLS x GOT n R PPC64 TPREL64 x is replaced by addis 9 13 x tprel ha R PPC64 TPREL16 HA x addi 9 9 x tprel l R PPC64 TPREL16 LO x Other sizes and types of thread local variables may use any of the X form indexed loads or stores that have corresponding D form instructions The ld and add instruction in this case may have intervening code inserted by the compiler An example showing access to the contents of a variable Code sequence Reloc Sym ld 9 x got tprel 2 R PPC64 GOT TPREL16 DS x lbzx 10 9 x tls R PPC64 TLS x addi 10 10 1 stbx 10 9 x tls R PPC64 TLS x GOT n R PPC64 TPREL64 x is replaced by addis 9 13 x tprel ha R PPC64 TPREL16 HA x lbz 10 x tprel l 9 R PPC64 TPREL16 LO x addi 10 10 1 stb 10 x tprel l 9 R PPC64 TPREL16 LO x 5 x 5 General Dynamic To Initial Exec PowerOpen syntax Code sequence Reloc Sym addi 3 2 LC0 toc R PPC64 TOC16 LC0 bl tls get addr R PPC64 REL24 tls get addr nop section toc aw LC0 quad x dtpmod R PPC64 DTPMOD64 x quad x dtprel R PPC64 DTPREL64 x is replaced by ld 9 LC0 toc 2 R PPC64 TOC16 DS LC0 nop add 9 9 13 section toc aw LC0 quad x tprel R PPC64 TPREL64 x quad 0 5 x 6 General Dynamic To Local Exec PowerOpen syntax As for the ELF syntax this transformation is only performed by the linker when the symbol is within 2G 28K of the thread pointer In other cases the GD IE transformation is used as that handles any offset Code sequence Reloc Sym addi 3 2 LC0 toc R PPC64 TOC16 LC0 bl tls

    Original URL path: http://www.uclibc.org/docs/tls-ppc64.txt (2015-03-26)
    Open archived version from archive



  •