From 4d165a6d4252173ddc66e11bbe40f83b98df6a46 Mon Sep 17 00:00:00 2001 From: Serge Lamikhov-Center <to_serge@users.sourceforge.net> Date: Mon, 26 Nov 2012 23:48:22 +0200 Subject: [PATCH] Convert to UNIX EOL --- .gitignore | 20 +- AUTHORS | 10 +- COPYING | 42 +- INSTALL | 730 ++++++------ Makefile.am | 18 +- README | 8 +- cygwin/CYGWIN-PATCHES/ELFIO-1.0.0.README | 124 +-- cygwin/CYGWIN-PATCHES/setup.hint | 18 +- cygwin/ELFIO-1.0.0-1.sh | 358 +++--- cygwin/ELFIO-1.0.0-2.sh | 358 +++--- cygwin/ELFIO-1.0.2-1.sh | 358 +++--- doc/Makefile.in | 630 +++++------ doc/images/callouts/1.svg | 30 +- doc/images/callouts/10.svg | 36 +- doc/images/callouts/11.svg | 32 +- doc/images/callouts/12.svg | 36 +- doc/images/callouts/13.svg | 40 +- doc/images/callouts/14.svg | 34 +- doc/images/callouts/15.svg | 38 +- doc/images/callouts/16.svg | 40 +- doc/images/callouts/17.svg | 34 +- doc/images/callouts/18.svg | 42 +- doc/images/callouts/19.svg | 40 +- doc/images/callouts/2.svg | 34 +- doc/images/callouts/20.svg | 40 +- doc/images/callouts/21.svg | 36 +- doc/images/callouts/22.svg | 40 +- doc/images/callouts/23.svg | 44 +- doc/images/callouts/24.svg | 38 +- doc/images/callouts/25.svg | 42 +- doc/images/callouts/26.svg | 44 +- doc/images/callouts/27.svg | 38 +- doc/images/callouts/28.svg | 46 +- doc/images/callouts/29.svg | 44 +- doc/images/callouts/3.svg | 38 +- doc/images/callouts/30.svg | 44 +- doc/images/callouts/4.svg | 32 +- doc/images/callouts/5.svg | 36 +- doc/images/callouts/6.svg | 38 +- doc/images/callouts/7.svg | 32 +- doc/images/callouts/8.svg | 40 +- doc/images/callouts/9.svg | 38 +- doc/images/caution.svg | 50 +- doc/images/home.svg | 52 +- doc/images/important.svg | 50 +- doc/images/next.svg | 38 +- doc/images/note.svg | 66 +- doc/images/prev.svg | 38 +- doc/images/tip.svg | 62 +- doc/images/up.svg | 38 +- doc/images/warning.svg | 46 +- elf_examples/asm.lst | 46 +- elf_examples/asm.s | 44 +- elf_examples/asm64.lst | 46 +- elf_examples/hello.c | 16 +- elf_examples/hello_32.txt | 422 +++---- elf_examples/hello_32_o.txt | 128 +-- elf_examples/hello_64.txt | 488 ++++---- elf_examples/hello_64_o.txt | 170 +-- elf_examples/test_ppc.cpp | 16 +- elf_examples/test_ppc.txt | 526 ++++----- elf_examples/test_ppc_o.txt | 228 ++-- elf_examples/write_exe_i386_32_work_dump.txt | 142 +-- examples/RelocationTable/RelocationTable.cpp | 112 +- examples/elfdump/Makefile.am | 14 +- examples/elfdump/elfdump.cpp | 112 +- examples/tutorial/Makefile.am | 10 +- examples/tutorial/tutorial.cpp | 180 +-- examples/writer/Makefile.am | 10 +- install-sh | 1040 +++++++++--------- missing | 752 ++++++------- prepare_cygwin.sh | 40 +- 72 files changed, 4401 insertions(+), 4401 deletions(-) diff --git a/.gitignore b/.gitignore index e7202f1..b437012 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,10 @@ -autom4te.cache -build -Debug -ELFIO.sdf -ELFIO.v11.suo -ELFIO.opensdf - -ELFIOTest/Debug - -examples/ELFDump/Debug +autom4te.cache +build +Debug +ELFIO.sdf +ELFIO.v11.suo +ELFIO.opensdf + +ELFIOTest/Debug + +examples/ELFDump/Debug diff --git a/AUTHORS b/AUTHORS index 4b1ef04..436fc0b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,5 +1,5 @@ -ELFIO library implemented by - Serge Lamikhov-Center <to_serge@users.sourceforge.net> - -ELFIO tutorial - Serge Lamikhov-Center - Allan Finch +ELFIO library implemented by + Serge Lamikhov-Center <to_serge@users.sourceforge.net> + +ELFIO tutorial - Serge Lamikhov-Center + Allan Finch diff --git a/COPYING b/COPYING index b0cd4ac..af4ead5 100644 --- a/COPYING +++ b/COPYING @@ -1,21 +1,21 @@ -MIT License - -Copyright (C) 2001-2011 by Serge Lamikhov-Center - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +MIT License + +Copyright (C) 2001-2011 by Serge Lamikhov-Center + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/INSTALL b/INSTALL index 7d1c323..e6278d1 100644 --- a/INSTALL +++ b/INSTALL @@ -1,365 +1,365 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008, 2009 Free Software Foundation, Inc. - - Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. This file is offered as-is, -without warranty of any kind. - -Basic Installation -================== - - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for -instructions specific to this package. Some packages provide this -`INSTALL' file but do not implement all of the features documented -below. The lack of an optional feature in a given package is not -necessarily a bug. More recommendations for GNU packages can be found -in *note Makefile Conventions: (standards)Makefile Conventions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. Caching is -disabled by default to prevent problems with accidental use of stale -cache files. - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You need `configure.ac' if -you want to change it or regenerate `configure' using a newer version -of `autoconf'. - - The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. - - Running `configure' might take a while. While running, it prints - some messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package, generally using the just-built uninstalled binaries. - - 4. Type `make install' to install the programs and any data files and - documentation. When installing into a prefix owned by root, it is - recommended that the package be configured and built as a regular - user, and only the `make install' phase executed with root - privileges. - - 5. Optionally, type `make installcheck' to repeat any self-tests, but - this time using the binaries in their final installed location. - This target does not install anything. Running this target as a - regular user, particularly if the prior `make install' required - root privileges, verifies that the installation completed - correctly. - - 6. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - - 7. Often, you can also type `make uninstall' to remove the installed - files again. In practice, not all packages have tested that - uninstallation works correctly, even though it is required by the - GNU Coding Standards. - - 8. Some packages, particularly those that use Automake, provide `make - distcheck', which can by used by developers to test that all other - targets like `make install' and `make uninstall' work correctly. - This target is generally not run by end users. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c99 CFLAGS=-g LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. This -is known as a "VPATH" build. - - With a non-GNU `make', it is safer to compile the package for one -architecture at a time in the source code directory. After you have -installed the package for one architecture, use `make distclean' before -reconfiguring for another architecture. - - On MacOS X 10.5 and later systems, you can create libraries and -executables that work on multiple system types--known as "fat" or -"universal" binaries--by specifying multiple `-arch' options to the -compiler but only a single `-arch' option to the preprocessor. Like -this: - - ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CPP="gcc -E" CXXCPP="g++ -E" - - This is not guaranteed to produce working output in all cases, you -may have to build one architecture at a time and combine the results -using the `lipo' tool if you have problems. - -Installation Names -================== - - By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX', where PREFIX must be an -absolute file name. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. In general, the -default for these options is expressed in terms of `${prefix}', so that -specifying just `--prefix' will affect all of the other directory -specifications that were not explicitly provided. - - The most portable way to affect installation locations is to pass the -correct locations to `configure'; however, many packages provide one or -both of the following shortcuts of passing variable assignments to the -`make install' command line to change installation locations without -having to reconfigure or recompile. - - The first method involves providing an override variable for each -affected directory. For example, `make install -prefix=/alternate/directory' will choose an alternate location for all -directory configuration variables that were expressed in terms of -`${prefix}'. Any directories that were specified during `configure', -but not in terms of `${prefix}', must each be overridden at install -time for the entire installation to be relocated. The approach of -makefile variable overrides for each directory variable is required by -the GNU Coding Standards, and ideally causes no recompilation. -However, some platforms have known limitations with the semantics of -shared libraries that end up requiring recompilation when using this -method, particularly noticeable in packages that use GNU Libtool. - - The second method involves providing the `DESTDIR' variable. For -example, `make install DESTDIR=/alternate/directory' will prepend -`/alternate/directory' before all installation names. The approach of -`DESTDIR' overrides is not required by the GNU Coding Standards, and -does not work on platforms that have drive letters. On the other hand, -it does better at avoiding recompilation issues, and works well even -when some directory options were not specified in terms of `${prefix}' -at `configure' time. - -Optional Features -================= - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - - Some packages offer the ability to configure how verbose the -execution of `make' will be. For these packages, running `./configure ---enable-silent-rules' sets the default to minimal output, which can be -overridden with `make V=1'; while running `./configure ---disable-silent-rules' sets the default to verbose, which can be -overridden with `make V=0'. - -Particular systems -================== - - On HP-UX, the default C compiler is not ANSI C compatible. If GNU -CC is not installed, it is recommended to use the following options in -order to use an ANSI C compiler: - - ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" - -and if that doesn't work, install pre-built binaries of GCC for HP-UX. - - On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot -parse its `<wchar.h>' header file. The option `-nodtk' can be used as -a workaround. If GNU CC is not installed, it is therefore recommended -to try - - ./configure CC="cc" - -and if that doesn't work, try - - ./configure CC="cc -nodtk" - - On Solaris, don't put `/usr/ucb' early in your `PATH'. This -directory contains several dysfunctional programs; working variants of -these programs are available in `/usr/bin'. So, if you need `/usr/ucb' -in your `PATH', put it _after_ `/usr/bin'. - - On Haiku, software installed for all users goes in `/boot/common', -not `/usr/local'. It is recommended to use the following options: - - ./configure --prefix=/boot/common - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS - KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - - Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). - -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: - - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of all of the options to `configure', and exit. - -`--help=short' -`--help=recursive' - Print a summary of the options unique to this package's - `configure', and exit. The `short' variant lists options used - only in the top level, while the `recursive' variant lists options - also present in any nested packages. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--prefix=DIR' - Use DIR as the installation prefix. *note Installation Names:: - for more details, including other options available for fine-tuning - the installation locations. - -`--no-create' -`-n' - Run the configure checks, but stop before creating any output - files. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008, 2009 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/Makefile.am b/Makefile.am index 56573d9..9af7318 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,9 +1,9 @@ -SUBDIRS = examples -nobase_include_HEADERS = elfio/elf_types.hpp elfio/elfi_dynamic.hpp \ - elfio/elfio.hpp elfio/elfio_header.hpp \ - elfio/elfio_note.hpp elfio/elfio_relocation.hpp \ - elfio/elfio_section.hpp elfio/elfio_segment.hpp \ - elfio/elfio_strings.hpp elfio/elfio_symbols.hpp \ - elfio/elfio_utils.hpp elfio/elfo_dynamic.hpp \ - elfio/elfio_dump.hpp -EXTRA_DIST = doc/elfio.pdf +SUBDIRS = examples +nobase_include_HEADERS = elfio/elf_types.hpp elfio/elfi_dynamic.hpp \ + elfio/elfio.hpp elfio/elfio_header.hpp \ + elfio/elfio_note.hpp elfio/elfio_relocation.hpp \ + elfio/elfio_section.hpp elfio/elfio_segment.hpp \ + elfio/elfio_strings.hpp elfio/elfio_symbols.hpp \ + elfio/elfio_utils.hpp elfio/elfo_dynamic.hpp \ + elfio/elfio_dump.hpp +EXTRA_DIST = doc/elfio.pdf diff --git a/README b/README index 89e5c5e..33609f8 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -ELFIO is a C++ library for reading and generating files in the ELF binary -format. This library is unique and not based on any other product. It is also -platform independent. The library uses standard ANSI C++ constructions and -runs on a wide variety of architectures. +ELFIO is a C++ library for reading and generating files in the ELF binary +format. This library is unique and not based on any other product. It is also +platform independent. The library uses standard ANSI C++ constructions and +runs on a wide variety of architectures. diff --git a/cygwin/CYGWIN-PATCHES/ELFIO-1.0.0.README b/cygwin/CYGWIN-PATCHES/ELFIO-1.0.0.README index 525cf6b..ff66c61 100644 --- a/cygwin/CYGWIN-PATCHES/ELFIO-1.0.0.README +++ b/cygwin/CYGWIN-PATCHES/ELFIO-1.0.0.README @@ -1,62 +1,62 @@ -ELFIO-1.0.0 ------------------------------------------- -ELFIO is a C++ library for reading and generating files in the -ELF (Executable and Linkable Format) binary format. This library is -unique and not based on any other product. It is also platform -independent. The library uses standard ANSI C++ constructions and runs -on a wide variety of architectures. - -More examples for using this library located at Examples directory -of the source package distribution. - - -Runtime requirements: - cygwin-1.3.10 or newer - -Build requirements: - cygwin-1.3.10 or newer - -Canonical homepage: - http://sourceforge.net/projects/elfio - -Canonical download: - http://sourceforge.net/project/showfiles.php?group_id=19959 - ------------------------------------- - -Build instructions: - unpack ELFIO-1.0.0-1-src.tar.bz2 - cd /usr/src - ./ELFIO-1.0.0-1.sh all - -This will create: - /usr/src/ELFIO-1.0.0-1.tar.bz2 - /usr/src/ELFIO-1.0.0-1-src.tar.bz2 - -------------------------------------------- - -Files included in the binary distro - - /lib/libELFIO.a - /usr/bin/ELFDump - /usr/include/ELFIO.h - /usr/include/ELFI.h - /usr/include/ELFO.h - /usr/include/ELFTypes.h - /usr/doc/ELFIO-1.0.0/AUTHORS - /usr/doc/ELFIO-1.0.0/COPYING - /usr/doc/ELFIO-1.0.0/README - /usr/doc/ELFIO-1.0.0/tutorial.pdf - /usr/doc/ELFIO-1.0.0/tutorial.cpp - /usr/doc/Cygwin/ELFIO-1.0.0.README - ------------------- - -Port Notes: - ------ version 1.0.0 ----- -Initial release - - -Cygwin port maintained by: Serge Lamikhov-Center to_serge@sourceforge.net - +ELFIO-1.0.0 +------------------------------------------ +ELFIO is a C++ library for reading and generating files in the +ELF (Executable and Linkable Format) binary format. This library is +unique and not based on any other product. It is also platform +independent. The library uses standard ANSI C++ constructions and runs +on a wide variety of architectures. + +More examples for using this library located at Examples directory +of the source package distribution. + + +Runtime requirements: + cygwin-1.3.10 or newer + +Build requirements: + cygwin-1.3.10 or newer + +Canonical homepage: + http://sourceforge.net/projects/elfio + +Canonical download: + http://sourceforge.net/project/showfiles.php?group_id=19959 + +------------------------------------ + +Build instructions: + unpack ELFIO-1.0.0-1-src.tar.bz2 + cd /usr/src + ./ELFIO-1.0.0-1.sh all + +This will create: + /usr/src/ELFIO-1.0.0-1.tar.bz2 + /usr/src/ELFIO-1.0.0-1-src.tar.bz2 + +------------------------------------------- + +Files included in the binary distro + + /lib/libELFIO.a + /usr/bin/ELFDump + /usr/include/ELFIO.h + /usr/include/ELFI.h + /usr/include/ELFO.h + /usr/include/ELFTypes.h + /usr/doc/ELFIO-1.0.0/AUTHORS + /usr/doc/ELFIO-1.0.0/COPYING + /usr/doc/ELFIO-1.0.0/README + /usr/doc/ELFIO-1.0.0/tutorial.pdf + /usr/doc/ELFIO-1.0.0/tutorial.cpp + /usr/doc/Cygwin/ELFIO-1.0.0.README + +------------------ + +Port Notes: + +----- version 1.0.0 ----- +Initial release + + +Cygwin port maintained by: Serge Lamikhov-Center to_serge@sourceforge.net + diff --git a/cygwin/CYGWIN-PATCHES/setup.hint b/cygwin/CYGWIN-PATCHES/setup.hint index cd567ac..0ea0432 100644 --- a/cygwin/CYGWIN-PATCHES/setup.hint +++ b/cygwin/CYGWIN-PATCHES/setup.hint @@ -1,9 +1,9 @@ -# ELFIO library -category: Devel Libs -requires: cygwin -sdesc: "ELF file reader and producer implemented as a C++ library" -ldesc: "ELFIO is a C++ library for reading and generating files in the -ELF (Executable and Linkable Format) binary format. This library is -unique and not based on any other product. It is also platform -independent. The library uses standard ANSI C++ constructions and runs -on a wide variety of architectures." +# ELFIO library +category: Devel Libs +requires: cygwin +sdesc: "ELF file reader and producer implemented as a C++ library" +ldesc: "ELFIO is a C++ library for reading and generating files in the +ELF (Executable and Linkable Format) binary format. This library is +unique and not based on any other product. It is also platform +independent. The library uses standard ANSI C++ constructions and runs +on a wide variety of architectures." diff --git a/cygwin/ELFIO-1.0.0-1.sh b/cygwin/ELFIO-1.0.0-1.sh index a230ea2..7ff4a6a 100755 --- a/cygwin/ELFIO-1.0.0-1.sh +++ b/cygwin/ELFIO-1.0.0-1.sh @@ -1,179 +1,179 @@ -#!/bin/sh -# find out where the build script is located -tdir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` -test "x$tdir" = "x$0" && tdir=. -scriptdir=`cd $tdir; pwd` -# find src directory. -# If scriptdir ends in SPECS, then topdir is $scriptdir/.. -# If scriptdir ends in CYGWIN-PATCHES, then topdir is $scriptdir/../.. -# Otherwise, we assume that topdir = scriptdir -topdir1=`echo ${scriptdir} | sed 's%/SPECS$%%'` -topdir2=`echo ${scriptdir} | sed 's%/CYGWIN-PATCHES$%%'` -if [ "x$topdir1" != "x$scriptdir" ] ; then # SPECS - topdir=`cd ${scriptdir}/..; pwd` -else - if [ "x$topdir2" != "x$scriptdir" ] ; then # CYGWIN-PATCHES - topdir=`cd ${scriptdir}/../..; pwd` - else - topdir=`cd ${scriptdir}; pwd` - fi -fi - -tscriptname=`basename $0 .sh` -export PKG=`echo $tscriptname | sed -e 's/\-[^\-]*\-[^\-]*$//'` -export VER=`echo $tscriptname | sed -e 's/^[^\-]*\-//' -e 's/\-[^\-]*$//'` -export REL=`echo $tscriptname | sed -e 's/^[^\-]*\-[^\-]*\-//'` -export FULLPKG=${PKG}-${VER}-${REL} -# if the orig src package is bzip2'ed, remember to -# change 'z' to 'j' in the 'tar xvzf' commands in the -# prep) and mkpatch) sections -export src_orig_pkg_name=${PKG}-${VER}.tar.gz -export src_pkg_name=${FULLPKG}-src.tar.bz2 -export src_patch_name=${FULLPKG}.patch -export bin_pkg_name=${FULLPKG}.tar.bz2 - -export src_orig_pkg=${topdir}/${src_orig_pkg_name} -export src_pkg=${topdir}/${src_pkg_name} -export src_patch=${topdir}/${src_patch_name} -export bin_pkg=${topdir}/${bin_pkg_name} -export srcdir=${topdir}/${PKG}-${VER} -export objdir=${srcdir}/.build -export instdir=${srcdir}/.inst -export srcinstdir=${srcdir}/.sinst -export checkfile=${topdir}/${FULLPKG}.check -# run on -host=i686-pc-cygwin -# if this package creates binaries, they run on -target=i686-pc-cygwin -prefix=/usr -sysconfdir=/etc -MY_CFLAGS="-O2" -MY_CXXFLAGS="-O2" -MY_LDFLAGS= - -mkdirs() { - (cd ${topdir} && \ - mkdir -p ${objdir} && \ - mkdir -p ${instdir} && \ - mkdir -p ${srcinstdir} ) -} -prep() { - (cd ${topdir} && \ - tar xvzf ${src_orig_pkg} ; \ - cd ${topdir} && \ - patch -p0 < ${src_patch} - && mkdirs ) -} -conf() { - (cd ${objdir} && \ - CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ - CXXFLAGS="${MY_CXXFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ - ${srcdir}/configure --host=${host} --target=${target} \ - --srcdir=${srcdir} --prefix=${prefix} \ - --exec-prefix=${prefix} --sysconfdir=${sysconfdir} \ - --libdir=/lib --includedir=${prefix}/include \ - --libexecdir='${sbindir}' --localstatedir=/var \ - --datadir='${prefix}/share' -) -} -build() { - (cd ${objdir} && \ - CFLAGS="${MY_CFLAGS}" make ) -} -check() { - (cd ${objdir} && \ - make test | tee ${checkfile} 2>&1 ) -} -clean() { - (cd ${objdir} && \ - make clean ) -} -install() { - (cd ${objdir} && \ - make install DESTDIR=${instdir} - if [ -f ${instdir}${prefix}/info/dir ] ; then \ - rm ${instdir}${prefix}/info/dir ; \ - fi && \ - if [ ! -d ${instdir}${prefix}/doc/${PKG}-${VER} ]; then \ - mkdir -p ${instdir}${prefix}/doc/${PKG}-${VER} ; \ - fi && \ - if [ ! -d ${instdir}${prefix}/doc/Cygwin ]; then \ - mkdir -p ${instdir}${prefix}/doc/Cygwin ; \ - fi && \ - templist=""; \ - for f in ${srcdir}/ANNOUNCE ${srcdir}/CHANGES ${srcdir}/INSTALL \ - ${srcdir}/KNOWNBUG ${srcdir}/LICENSE ${srcdir}/README \ - ${srcdir}/AUTHORS ${srcdir}/KNOWNBUG ${srcdir}/COPYING \ - ${srcdir}/doc/tutorial.pdf \ - ${srcdir}/Examples/tutorial/tutorial.cpp \ - ${srcdir}/TODO ; do \ - if [ -f $f ] ; then \ - templist="$templist $f"; \ - fi ; \ - done && \ - if [ ! "x$templist" = "x" ]; then \ - /usr/bin/install -m 644 $templist \ - ${instdir}${prefix}/doc/${PKG}-${VER} ; - fi && \ - if [ -f ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README ]; then \ - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README \ - ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ - else \ - if [ -f ${srcdir}/CYGWIN-PATCHES/README ]; then \ - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/README \ - ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ - fi ;\ - fi ; ) -} -strip() { - (cd ${instdir} && \ - find . -name "*.dll" | xargs strip > /dev/null 2>&1 - find . -name "*.exe" | xargs strip > /dev/null 2>&1 ) -} -pkg() { - (cd ${instdir} && \ - tar cvjf ${bin_pkg} * ) -} -mkpatch() { - (cd ${srcdir} && \ - tar xvzf ${src_orig_pkg} ;\ - mv ${PKG}-${VER} ../${PKG}-${VER}-orig && \ - cd ${topdir} && \ - diff -urN -x '.build' -x '.inst' -x '.sinst' \ - ${PKG}-${VER}-orig ${PKG}-${VER} > \ - ${srcinstdir}/${src_patch_name} ; \ - rm -rf ${PKG}-${VER}-orig ) -} -spkg() { - (mkpatch && \ - cp ${src_orig_pkg} ${srcinstdir}/${src_orig_pkg_name} && \ - cp $0 ${srcinstdir}/`basename $0` && \ - cd ${srcinstdir} && \ - tar cvjf ${src_pkg} * ) -} -finish() { - rm -rf ${srcdir} -} -case $1 in - prep) prep ; STATUS=$? ;; - mkdirs) mkdirs; STATUS=$? ;; - conf) conf ; STATUS=$? ;; - build) build ; STATUS=$? ;; - check) check ; STATUS=$? ;; - clean) clean ; STATUS=$? ;; - install) install ; STATUS=$? ;; - strip) strip ; STATUS=$? ;; - package) pkg ; STATUS=$? ;; - pkg) pkg ; STATUS=$? ;; - mkpatch) mkpatch ; STATUS=$? ;; - src-package) spkg ; STATUS=$? ;; - spkg) spkg ; STATUS=$? ;; - finish) finish ; STATUS=$? ;; - all) prep && conf && build && install && \ - strip && pkg && spkg && finish ; \ - STATUS=$? ;; - *) echo "Error: bad arguments" ; exit 1 ;; -esac -exit ${STATUS} - - +#!/bin/sh +# find out where the build script is located +tdir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` +test "x$tdir" = "x$0" && tdir=. +scriptdir=`cd $tdir; pwd` +# find src directory. +# If scriptdir ends in SPECS, then topdir is $scriptdir/.. +# If scriptdir ends in CYGWIN-PATCHES, then topdir is $scriptdir/../.. +# Otherwise, we assume that topdir = scriptdir +topdir1=`echo ${scriptdir} | sed 's%/SPECS$%%'` +topdir2=`echo ${scriptdir} | sed 's%/CYGWIN-PATCHES$%%'` +if [ "x$topdir1" != "x$scriptdir" ] ; then # SPECS + topdir=`cd ${scriptdir}/..; pwd` +else + if [ "x$topdir2" != "x$scriptdir" ] ; then # CYGWIN-PATCHES + topdir=`cd ${scriptdir}/../..; pwd` + else + topdir=`cd ${scriptdir}; pwd` + fi +fi + +tscriptname=`basename $0 .sh` +export PKG=`echo $tscriptname | sed -e 's/\-[^\-]*\-[^\-]*$//'` +export VER=`echo $tscriptname | sed -e 's/^[^\-]*\-//' -e 's/\-[^\-]*$//'` +export REL=`echo $tscriptname | sed -e 's/^[^\-]*\-[^\-]*\-//'` +export FULLPKG=${PKG}-${VER}-${REL} +# if the orig src package is bzip2'ed, remember to +# change 'z' to 'j' in the 'tar xvzf' commands in the +# prep) and mkpatch) sections +export src_orig_pkg_name=${PKG}-${VER}.tar.gz +export src_pkg_name=${FULLPKG}-src.tar.bz2 +export src_patch_name=${FULLPKG}.patch +export bin_pkg_name=${FULLPKG}.tar.bz2 + +export src_orig_pkg=${topdir}/${src_orig_pkg_name} +export src_pkg=${topdir}/${src_pkg_name} +export src_patch=${topdir}/${src_patch_name} +export bin_pkg=${topdir}/${bin_pkg_name} +export srcdir=${topdir}/${PKG}-${VER} +export objdir=${srcdir}/.build +export instdir=${srcdir}/.inst +export srcinstdir=${srcdir}/.sinst +export checkfile=${topdir}/${FULLPKG}.check +# run on +host=i686-pc-cygwin +# if this package creates binaries, they run on +target=i686-pc-cygwin +prefix=/usr +sysconfdir=/etc +MY_CFLAGS="-O2" +MY_CXXFLAGS="-O2" +MY_LDFLAGS= + +mkdirs() { + (cd ${topdir} && \ + mkdir -p ${objdir} && \ + mkdir -p ${instdir} && \ + mkdir -p ${srcinstdir} ) +} +prep() { + (cd ${topdir} && \ + tar xvzf ${src_orig_pkg} ; \ + cd ${topdir} && \ + patch -p0 < ${src_patch} + && mkdirs ) +} +conf() { + (cd ${objdir} && \ + CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ + CXXFLAGS="${MY_CXXFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ + ${srcdir}/configure --host=${host} --target=${target} \ + --srcdir=${srcdir} --prefix=${prefix} \ + --exec-prefix=${prefix} --sysconfdir=${sysconfdir} \ + --libdir=/lib --includedir=${prefix}/include \ + --libexecdir='${sbindir}' --localstatedir=/var \ + --datadir='${prefix}/share' +) +} +build() { + (cd ${objdir} && \ + CFLAGS="${MY_CFLAGS}" make ) +} +check() { + (cd ${objdir} && \ + make test | tee ${checkfile} 2>&1 ) +} +clean() { + (cd ${objdir} && \ + make clean ) +} +install() { + (cd ${objdir} && \ + make install DESTDIR=${instdir} + if [ -f ${instdir}${prefix}/info/dir ] ; then \ + rm ${instdir}${prefix}/info/dir ; \ + fi && \ + if [ ! -d ${instdir}${prefix}/doc/${PKG}-${VER} ]; then \ + mkdir -p ${instdir}${prefix}/doc/${PKG}-${VER} ; \ + fi && \ + if [ ! -d ${instdir}${prefix}/doc/Cygwin ]; then \ + mkdir -p ${instdir}${prefix}/doc/Cygwin ; \ + fi && \ + templist=""; \ + for f in ${srcdir}/ANNOUNCE ${srcdir}/CHANGES ${srcdir}/INSTALL \ + ${srcdir}/KNOWNBUG ${srcdir}/LICENSE ${srcdir}/README \ + ${srcdir}/AUTHORS ${srcdir}/KNOWNBUG ${srcdir}/COPYING \ + ${srcdir}/doc/tutorial.pdf \ + ${srcdir}/Examples/tutorial/tutorial.cpp \ + ${srcdir}/TODO ; do \ + if [ -f $f ] ; then \ + templist="$templist $f"; \ + fi ; \ + done && \ + if [ ! "x$templist" = "x" ]; then \ + /usr/bin/install -m 644 $templist \ + ${instdir}${prefix}/doc/${PKG}-${VER} ; + fi && \ + if [ -f ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README ]; then \ + /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README \ + ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ + else \ + if [ -f ${srcdir}/CYGWIN-PATCHES/README ]; then \ + /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/README \ + ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ + fi ;\ + fi ; ) +} +strip() { + (cd ${instdir} && \ + find . -name "*.dll" | xargs strip > /dev/null 2>&1 + find . -name "*.exe" | xargs strip > /dev/null 2>&1 ) +} +pkg() { + (cd ${instdir} && \ + tar cvjf ${bin_pkg} * ) +} +mkpatch() { + (cd ${srcdir} && \ + tar xvzf ${src_orig_pkg} ;\ + mv ${PKG}-${VER} ../${PKG}-${VER}-orig && \ + cd ${topdir} && \ + diff -urN -x '.build' -x '.inst' -x '.sinst' \ + ${PKG}-${VER}-orig ${PKG}-${VER} > \ + ${srcinstdir}/${src_patch_name} ; \ + rm -rf ${PKG}-${VER}-orig ) +} +spkg() { + (mkpatch && \ + cp ${src_orig_pkg} ${srcinstdir}/${src_orig_pkg_name} && \ + cp $0 ${srcinstdir}/`basename $0` && \ + cd ${srcinstdir} && \ + tar cvjf ${src_pkg} * ) +} +finish() { + rm -rf ${srcdir} +} +case $1 in + prep) prep ; STATUS=$? ;; + mkdirs) mkdirs; STATUS=$? ;; + conf) conf ; STATUS=$? ;; + build) build ; STATUS=$? ;; + check) check ; STATUS=$? ;; + clean) clean ; STATUS=$? ;; + install) install ; STATUS=$? ;; + strip) strip ; STATUS=$? ;; + package) pkg ; STATUS=$? ;; + pkg) pkg ; STATUS=$? ;; + mkpatch) mkpatch ; STATUS=$? ;; + src-package) spkg ; STATUS=$? ;; + spkg) spkg ; STATUS=$? ;; + finish) finish ; STATUS=$? ;; + all) prep && conf && build && install && \ + strip && pkg && spkg && finish ; \ + STATUS=$? ;; + *) echo "Error: bad arguments" ; exit 1 ;; +esac +exit ${STATUS} + + diff --git a/cygwin/ELFIO-1.0.0-2.sh b/cygwin/ELFIO-1.0.0-2.sh index a230ea2..7ff4a6a 100755 --- a/cygwin/ELFIO-1.0.0-2.sh +++ b/cygwin/ELFIO-1.0.0-2.sh @@ -1,179 +1,179 @@ -#!/bin/sh -# find out where the build script is located -tdir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` -test "x$tdir" = "x$0" && tdir=. -scriptdir=`cd $tdir; pwd` -# find src directory. -# If scriptdir ends in SPECS, then topdir is $scriptdir/.. -# If scriptdir ends in CYGWIN-PATCHES, then topdir is $scriptdir/../.. -# Otherwise, we assume that topdir = scriptdir -topdir1=`echo ${scriptdir} | sed 's%/SPECS$%%'` -topdir2=`echo ${scriptdir} | sed 's%/CYGWIN-PATCHES$%%'` -if [ "x$topdir1" != "x$scriptdir" ] ; then # SPECS - topdir=`cd ${scriptdir}/..; pwd` -else - if [ "x$topdir2" != "x$scriptdir" ] ; then # CYGWIN-PATCHES - topdir=`cd ${scriptdir}/../..; pwd` - else - topdir=`cd ${scriptdir}; pwd` - fi -fi - -tscriptname=`basename $0 .sh` -export PKG=`echo $tscriptname | sed -e 's/\-[^\-]*\-[^\-]*$//'` -export VER=`echo $tscriptname | sed -e 's/^[^\-]*\-//' -e 's/\-[^\-]*$//'` -export REL=`echo $tscriptname | sed -e 's/^[^\-]*\-[^\-]*\-//'` -export FULLPKG=${PKG}-${VER}-${REL} -# if the orig src package is bzip2'ed, remember to -# change 'z' to 'j' in the 'tar xvzf' commands in the -# prep) and mkpatch) sections -export src_orig_pkg_name=${PKG}-${VER}.tar.gz -export src_pkg_name=${FULLPKG}-src.tar.bz2 -export src_patch_name=${FULLPKG}.patch -export bin_pkg_name=${FULLPKG}.tar.bz2 - -export src_orig_pkg=${topdir}/${src_orig_pkg_name} -export src_pkg=${topdir}/${src_pkg_name} -export src_patch=${topdir}/${src_patch_name} -export bin_pkg=${topdir}/${bin_pkg_name} -export srcdir=${topdir}/${PKG}-${VER} -export objdir=${srcdir}/.build -export instdir=${srcdir}/.inst -export srcinstdir=${srcdir}/.sinst -export checkfile=${topdir}/${FULLPKG}.check -# run on -host=i686-pc-cygwin -# if this package creates binaries, they run on -target=i686-pc-cygwin -prefix=/usr -sysconfdir=/etc -MY_CFLAGS="-O2" -MY_CXXFLAGS="-O2" -MY_LDFLAGS= - -mkdirs() { - (cd ${topdir} && \ - mkdir -p ${objdir} && \ - mkdir -p ${instdir} && \ - mkdir -p ${srcinstdir} ) -} -prep() { - (cd ${topdir} && \ - tar xvzf ${src_orig_pkg} ; \ - cd ${topdir} && \ - patch -p0 < ${src_patch} - && mkdirs ) -} -conf() { - (cd ${objdir} && \ - CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ - CXXFLAGS="${MY_CXXFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ - ${srcdir}/configure --host=${host} --target=${target} \ - --srcdir=${srcdir} --prefix=${prefix} \ - --exec-prefix=${prefix} --sysconfdir=${sysconfdir} \ - --libdir=/lib --includedir=${prefix}/include \ - --libexecdir='${sbindir}' --localstatedir=/var \ - --datadir='${prefix}/share' -) -} -build() { - (cd ${objdir} && \ - CFLAGS="${MY_CFLAGS}" make ) -} -check() { - (cd ${objdir} && \ - make test | tee ${checkfile} 2>&1 ) -} -clean() { - (cd ${objdir} && \ - make clean ) -} -install() { - (cd ${objdir} && \ - make install DESTDIR=${instdir} - if [ -f ${instdir}${prefix}/info/dir ] ; then \ - rm ${instdir}${prefix}/info/dir ; \ - fi && \ - if [ ! -d ${instdir}${prefix}/doc/${PKG}-${VER} ]; then \ - mkdir -p ${instdir}${prefix}/doc/${PKG}-${VER} ; \ - fi && \ - if [ ! -d ${instdir}${prefix}/doc/Cygwin ]; then \ - mkdir -p ${instdir}${prefix}/doc/Cygwin ; \ - fi && \ - templist=""; \ - for f in ${srcdir}/ANNOUNCE ${srcdir}/CHANGES ${srcdir}/INSTALL \ - ${srcdir}/KNOWNBUG ${srcdir}/LICENSE ${srcdir}/README \ - ${srcdir}/AUTHORS ${srcdir}/KNOWNBUG ${srcdir}/COPYING \ - ${srcdir}/doc/tutorial.pdf \ - ${srcdir}/Examples/tutorial/tutorial.cpp \ - ${srcdir}/TODO ; do \ - if [ -f $f ] ; then \ - templist="$templist $f"; \ - fi ; \ - done && \ - if [ ! "x$templist" = "x" ]; then \ - /usr/bin/install -m 644 $templist \ - ${instdir}${prefix}/doc/${PKG}-${VER} ; - fi && \ - if [ -f ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README ]; then \ - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README \ - ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ - else \ - if [ -f ${srcdir}/CYGWIN-PATCHES/README ]; then \ - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/README \ - ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ - fi ;\ - fi ; ) -} -strip() { - (cd ${instdir} && \ - find . -name "*.dll" | xargs strip > /dev/null 2>&1 - find . -name "*.exe" | xargs strip > /dev/null 2>&1 ) -} -pkg() { - (cd ${instdir} && \ - tar cvjf ${bin_pkg} * ) -} -mkpatch() { - (cd ${srcdir} && \ - tar xvzf ${src_orig_pkg} ;\ - mv ${PKG}-${VER} ../${PKG}-${VER}-orig && \ - cd ${topdir} && \ - diff -urN -x '.build' -x '.inst' -x '.sinst' \ - ${PKG}-${VER}-orig ${PKG}-${VER} > \ - ${srcinstdir}/${src_patch_name} ; \ - rm -rf ${PKG}-${VER}-orig ) -} -spkg() { - (mkpatch && \ - cp ${src_orig_pkg} ${srcinstdir}/${src_orig_pkg_name} && \ - cp $0 ${srcinstdir}/`basename $0` && \ - cd ${srcinstdir} && \ - tar cvjf ${src_pkg} * ) -} -finish() { - rm -rf ${srcdir} -} -case $1 in - prep) prep ; STATUS=$? ;; - mkdirs) mkdirs; STATUS=$? ;; - conf) conf ; STATUS=$? ;; - build) build ; STATUS=$? ;; - check) check ; STATUS=$? ;; - clean) clean ; STATUS=$? ;; - install) install ; STATUS=$? ;; - strip) strip ; STATUS=$? ;; - package) pkg ; STATUS=$? ;; - pkg) pkg ; STATUS=$? ;; - mkpatch) mkpatch ; STATUS=$? ;; - src-package) spkg ; STATUS=$? ;; - spkg) spkg ; STATUS=$? ;; - finish) finish ; STATUS=$? ;; - all) prep && conf && build && install && \ - strip && pkg && spkg && finish ; \ - STATUS=$? ;; - *) echo "Error: bad arguments" ; exit 1 ;; -esac -exit ${STATUS} - - +#!/bin/sh +# find out where the build script is located +tdir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` +test "x$tdir" = "x$0" && tdir=. +scriptdir=`cd $tdir; pwd` +# find src directory. +# If scriptdir ends in SPECS, then topdir is $scriptdir/.. +# If scriptdir ends in CYGWIN-PATCHES, then topdir is $scriptdir/../.. +# Otherwise, we assume that topdir = scriptdir +topdir1=`echo ${scriptdir} | sed 's%/SPECS$%%'` +topdir2=`echo ${scriptdir} | sed 's%/CYGWIN-PATCHES$%%'` +if [ "x$topdir1" != "x$scriptdir" ] ; then # SPECS + topdir=`cd ${scriptdir}/..; pwd` +else + if [ "x$topdir2" != "x$scriptdir" ] ; then # CYGWIN-PATCHES + topdir=`cd ${scriptdir}/../..; pwd` + else + topdir=`cd ${scriptdir}; pwd` + fi +fi + +tscriptname=`basename $0 .sh` +export PKG=`echo $tscriptname | sed -e 's/\-[^\-]*\-[^\-]*$//'` +export VER=`echo $tscriptname | sed -e 's/^[^\-]*\-//' -e 's/\-[^\-]*$//'` +export REL=`echo $tscriptname | sed -e 's/^[^\-]*\-[^\-]*\-//'` +export FULLPKG=${PKG}-${VER}-${REL} +# if the orig src package is bzip2'ed, remember to +# change 'z' to 'j' in the 'tar xvzf' commands in the +# prep) and mkpatch) sections +export src_orig_pkg_name=${PKG}-${VER}.tar.gz +export src_pkg_name=${FULLPKG}-src.tar.bz2 +export src_patch_name=${FULLPKG}.patch +export bin_pkg_name=${FULLPKG}.tar.bz2 + +export src_orig_pkg=${topdir}/${src_orig_pkg_name} +export src_pkg=${topdir}/${src_pkg_name} +export src_patch=${topdir}/${src_patch_name} +export bin_pkg=${topdir}/${bin_pkg_name} +export srcdir=${topdir}/${PKG}-${VER} +export objdir=${srcdir}/.build +export instdir=${srcdir}/.inst +export srcinstdir=${srcdir}/.sinst +export checkfile=${topdir}/${FULLPKG}.check +# run on +host=i686-pc-cygwin +# if this package creates binaries, they run on +target=i686-pc-cygwin +prefix=/usr +sysconfdir=/etc +MY_CFLAGS="-O2" +MY_CXXFLAGS="-O2" +MY_LDFLAGS= + +mkdirs() { + (cd ${topdir} && \ + mkdir -p ${objdir} && \ + mkdir -p ${instdir} && \ + mkdir -p ${srcinstdir} ) +} +prep() { + (cd ${topdir} && \ + tar xvzf ${src_orig_pkg} ; \ + cd ${topdir} && \ + patch -p0 < ${src_patch} + && mkdirs ) +} +conf() { + (cd ${objdir} && \ + CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ + CXXFLAGS="${MY_CXXFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ + ${srcdir}/configure --host=${host} --target=${target} \ + --srcdir=${srcdir} --prefix=${prefix} \ + --exec-prefix=${prefix} --sysconfdir=${sysconfdir} \ + --libdir=/lib --includedir=${prefix}/include \ + --libexecdir='${sbindir}' --localstatedir=/var \ + --datadir='${prefix}/share' +) +} +build() { + (cd ${objdir} && \ + CFLAGS="${MY_CFLAGS}" make ) +} +check() { + (cd ${objdir} && \ + make test | tee ${checkfile} 2>&1 ) +} +clean() { + (cd ${objdir} && \ + make clean ) +} +install() { + (cd ${objdir} && \ + make install DESTDIR=${instdir} + if [ -f ${instdir}${prefix}/info/dir ] ; then \ + rm ${instdir}${prefix}/info/dir ; \ + fi && \ + if [ ! -d ${instdir}${prefix}/doc/${PKG}-${VER} ]; then \ + mkdir -p ${instdir}${prefix}/doc/${PKG}-${VER} ; \ + fi && \ + if [ ! -d ${instdir}${prefix}/doc/Cygwin ]; then \ + mkdir -p ${instdir}${prefix}/doc/Cygwin ; \ + fi && \ + templist=""; \ + for f in ${srcdir}/ANNOUNCE ${srcdir}/CHANGES ${srcdir}/INSTALL \ + ${srcdir}/KNOWNBUG ${srcdir}/LICENSE ${srcdir}/README \ + ${srcdir}/AUTHORS ${srcdir}/KNOWNBUG ${srcdir}/COPYING \ + ${srcdir}/doc/tutorial.pdf \ + ${srcdir}/Examples/tutorial/tutorial.cpp \ + ${srcdir}/TODO ; do \ + if [ -f $f ] ; then \ + templist="$templist $f"; \ + fi ; \ + done && \ + if [ ! "x$templist" = "x" ]; then \ + /usr/bin/install -m 644 $templist \ + ${instdir}${prefix}/doc/${PKG}-${VER} ; + fi && \ + if [ -f ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README ]; then \ + /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README \ + ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ + else \ + if [ -f ${srcdir}/CYGWIN-PATCHES/README ]; then \ + /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/README \ + ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ + fi ;\ + fi ; ) +} +strip() { + (cd ${instdir} && \ + find . -name "*.dll" | xargs strip > /dev/null 2>&1 + find . -name "*.exe" | xargs strip > /dev/null 2>&1 ) +} +pkg() { + (cd ${instdir} && \ + tar cvjf ${bin_pkg} * ) +} +mkpatch() { + (cd ${srcdir} && \ + tar xvzf ${src_orig_pkg} ;\ + mv ${PKG}-${VER} ../${PKG}-${VER}-orig && \ + cd ${topdir} && \ + diff -urN -x '.build' -x '.inst' -x '.sinst' \ + ${PKG}-${VER}-orig ${PKG}-${VER} > \ + ${srcinstdir}/${src_patch_name} ; \ + rm -rf ${PKG}-${VER}-orig ) +} +spkg() { + (mkpatch && \ + cp ${src_orig_pkg} ${srcinstdir}/${src_orig_pkg_name} && \ + cp $0 ${srcinstdir}/`basename $0` && \ + cd ${srcinstdir} && \ + tar cvjf ${src_pkg} * ) +} +finish() { + rm -rf ${srcdir} +} +case $1 in + prep) prep ; STATUS=$? ;; + mkdirs) mkdirs; STATUS=$? ;; + conf) conf ; STATUS=$? ;; + build) build ; STATUS=$? ;; + check) check ; STATUS=$? ;; + clean) clean ; STATUS=$? ;; + install) install ; STATUS=$? ;; + strip) strip ; STATUS=$? ;; + package) pkg ; STATUS=$? ;; + pkg) pkg ; STATUS=$? ;; + mkpatch) mkpatch ; STATUS=$? ;; + src-package) spkg ; STATUS=$? ;; + spkg) spkg ; STATUS=$? ;; + finish) finish ; STATUS=$? ;; + all) prep && conf && build && install && \ + strip && pkg && spkg && finish ; \ + STATUS=$? ;; + *) echo "Error: bad arguments" ; exit 1 ;; +esac +exit ${STATUS} + + diff --git a/cygwin/ELFIO-1.0.2-1.sh b/cygwin/ELFIO-1.0.2-1.sh index c4a4564..0ea4c9f 100755 --- a/cygwin/ELFIO-1.0.2-1.sh +++ b/cygwin/ELFIO-1.0.2-1.sh @@ -1,179 +1,179 @@ -#!/bin/sh -# find out where the build script is located -tdir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` -test "x$tdir" = "x$0" && tdir=. -scriptdir=`cd $tdir; pwd` -# find src directory. -# If scriptdir ends in SPECS, then topdir is $scriptdir/.. -# If scriptdir ends in CYGWIN-PATCHES, then topdir is $scriptdir/../.. -# Otherwise, we assume that topdir = scriptdir -topdir1=`echo ${scriptdir} | sed 's%/SPECS$%%'` -topdir2=`echo ${scriptdir} | sed 's%/CYGWIN-PATCHES$%%'` -if [ "x$topdir1" != "x$scriptdir" ] ; then # SPECS - topdir=`cd ${scriptdir}/..; pwd` -else - if [ "x$topdir2" != "x$scriptdir" ] ; then # CYGWIN-PATCHES - topdir=`cd ${scriptdir}/../..; pwd` - else - topdir=`cd ${scriptdir}; pwd` - fi -fi - -tscriptname=`basename $0 .sh` -export PKG=`echo $tscriptname | sed -e 's/\-[^\-]*\-[^\-]*$//'` -export VER=`echo $tscriptname | sed -e 's/^[^\-]*\-//' -e 's/\-[^\-]*$//'` -export REL=`echo $tscriptname | sed -e 's/^[^\-]*\-[^\-]*\-//'` -export FULLPKG=${PKG}-${VER}-${REL} -# if the orig src package is bzip2'ed, remember to -# change 'z' to 'j' in the 'tar xvzf' commands in the -# prep) and mkpatch) sections -export src_orig_pkg_name=${PKG}-${VER}.tar.gz -export src_pkg_name=${FULLPKG}-src.tar.bz2 -export src_patch_name=${FULLPKG}.patch -export bin_pkg_name=${FULLPKG}.tar.bz2 - -export src_orig_pkg=${topdir}/${src_orig_pkg_name} -export src_pkg=${topdir}/${src_pkg_name} -export src_patch=${topdir}/${src_patch_name} -export bin_pkg=${topdir}/${bin_pkg_name} -export srcdir=${topdir}/${PKG}-${VER} -export objdir=${srcdir}/.build -export instdir=${srcdir}/.inst -export srcinstdir=${srcdir}/.sinst -export checkfile=${topdir}/${FULLPKG}.check -# run on -host=i686-pc-cygwin -# if this package creates binaries, they run on -target=i686-pc-cygwin -prefix=/usr -sysconfdir=/etc -MY_CFLAGS="-O2" -MY_CXXFLAGS="-O2" -MY_LDFLAGS= - -mkdirs() { - (cd ${topdir} && \ - mkdir -p ${objdir} && \ - mkdir -p ${instdir} && \ - mkdir -p ${srcinstdir} ) -} -prep() { - (cd ${topdir} && \ - tar xvzf ${src_orig_pkg} ; \ - cd ${topdir} && \ - patch -p0 < ${src_patch} \ - && mkdirs ) -} -conf() { - (cd ${objdir} && \ - CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ - CXXFLAGS="${MY_CXXFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ - ${srcdir}/configure --host=${host} --target=${target} \ - --srcdir=${srcdir} --prefix=${prefix} \ - --exec-prefix=${prefix} --sysconfdir=${sysconfdir} \ - --libdir=/lib --includedir=${prefix}/include \ - --libexecdir='${sbindir}' --localstatedir=/var \ - --datadir='${prefix}/share' -) -} -build() { - (cd ${objdir} && \ - CFLAGS="${MY_CFLAGS}" make ) -} -check() { - (cd ${objdir} && \ - make test | tee ${checkfile} 2>&1 ) -} -clean() { - (cd ${objdir} && \ - make clean ) -} -install() { - (cd ${objdir} && \ - make install DESTDIR=${instdir} - if [ -f ${instdir}${prefix}/info/dir ] ; then \ - rm ${instdir}${prefix}/info/dir ; \ - fi && \ - if [ ! -d ${instdir}${prefix}/doc/${PKG}-${VER} ]; then \ - mkdir -p ${instdir}${prefix}/doc/${PKG}-${VER} ; \ - fi && \ - if [ ! -d ${instdir}${prefix}/doc/Cygwin ]; then \ - mkdir -p ${instdir}${prefix}/doc/Cygwin ; \ - fi && \ - templist=""; \ - for f in ${srcdir}/ANNOUNCE ${srcdir}/CHANGES ${srcdir}/INSTALL \ - ${srcdir}/KNOWNBUG ${srcdir}/LICENSE ${srcdir}/README \ - ${srcdir}/AUTHORS ${srcdir}/KNOWNBUG ${srcdir}/COPYING \ - ${srcdir}/doc/tutorial.pdf \ - ${srcdir}/Examples/tutorial/tutorial.cpp \ - ${srcdir}/TODO ; do \ - if [ -f $f ] ; then \ - templist="$templist $f"; \ - fi ; \ - done && \ - if [ ! "x$templist" = "x" ]; then \ - /usr/bin/install -m 644 $templist \ - ${instdir}${prefix}/doc/${PKG}-${VER} ; - fi && \ - if [ -f ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README ]; then \ - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README \ - ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ - else \ - if [ -f ${srcdir}/CYGWIN-PATCHES/README ]; then \ - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/README \ - ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ - fi ;\ - fi ; ) -} -strip() { - (cd ${instdir} && \ - find . -name "*.dll" | xargs strip > /dev/null 2>&1 - find . -name "*.exe" | xargs strip > /dev/null 2>&1 ) -} -pkg() { - (cd ${instdir} && \ - tar cvjf ${bin_pkg} * ) -} -mkpatch() { - (cd ${srcdir} && \ - tar xvzf ${src_orig_pkg} ;\ - mv ${PKG}-${VER} ../${PKG}-${VER}-orig && \ - cd ${topdir} && \ - diff -urN -x '.build' -x '.inst' -x '.sinst' \ - ${PKG}-${VER}-orig ${PKG}-${VER} > \ - ${srcinstdir}/${src_patch_name} ; \ - rm -rf ${PKG}-${VER}-orig ) -} -spkg() { - (mkpatch && \ - cp ${src_orig_pkg} ${srcinstdir}/${src_orig_pkg_name} && \ - cp $0 ${srcinstdir}/`basename $0` && \ - cd ${srcinstdir} && \ - tar cvjf ${src_pkg} * ) -} -finish() { - rm -rf ${srcdir} -} -case $1 in - prep) prep ; STATUS=$? ;; - mkdirs) mkdirs; STATUS=$? ;; - conf) conf ; STATUS=$? ;; - build) build ; STATUS=$? ;; - check) check ; STATUS=$? ;; - clean) clean ; STATUS=$? ;; - install) install ; STATUS=$? ;; - strip) strip ; STATUS=$? ;; - package) pkg ; STATUS=$? ;; - pkg) pkg ; STATUS=$? ;; - mkpatch) mkpatch ; STATUS=$? ;; - src-package) spkg ; STATUS=$? ;; - spkg) spkg ; STATUS=$? ;; - finish) finish ; STATUS=$? ;; - all) prep && conf && build && install && \ - strip && pkg && spkg && finish ; \ - STATUS=$? ;; - *) echo "Error: bad arguments" ; exit 1 ;; -esac -exit ${STATUS} - - +#!/bin/sh +# find out where the build script is located +tdir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` +test "x$tdir" = "x$0" && tdir=. +scriptdir=`cd $tdir; pwd` +# find src directory. +# If scriptdir ends in SPECS, then topdir is $scriptdir/.. +# If scriptdir ends in CYGWIN-PATCHES, then topdir is $scriptdir/../.. +# Otherwise, we assume that topdir = scriptdir +topdir1=`echo ${scriptdir} | sed 's%/SPECS$%%'` +topdir2=`echo ${scriptdir} | sed 's%/CYGWIN-PATCHES$%%'` +if [ "x$topdir1" != "x$scriptdir" ] ; then # SPECS + topdir=`cd ${scriptdir}/..; pwd` +else + if [ "x$topdir2" != "x$scriptdir" ] ; then # CYGWIN-PATCHES + topdir=`cd ${scriptdir}/../..; pwd` + else + topdir=`cd ${scriptdir}; pwd` + fi +fi + +tscriptname=`basename $0 .sh` +export PKG=`echo $tscriptname | sed -e 's/\-[^\-]*\-[^\-]*$//'` +export VER=`echo $tscriptname | sed -e 's/^[^\-]*\-//' -e 's/\-[^\-]*$//'` +export REL=`echo $tscriptname | sed -e 's/^[^\-]*\-[^\-]*\-//'` +export FULLPKG=${PKG}-${VER}-${REL} +# if the orig src package is bzip2'ed, remember to +# change 'z' to 'j' in the 'tar xvzf' commands in the +# prep) and mkpatch) sections +export src_orig_pkg_name=${PKG}-${VER}.tar.gz +export src_pkg_name=${FULLPKG}-src.tar.bz2 +export src_patch_name=${FULLPKG}.patch +export bin_pkg_name=${FULLPKG}.tar.bz2 + +export src_orig_pkg=${topdir}/${src_orig_pkg_name} +export src_pkg=${topdir}/${src_pkg_name} +export src_patch=${topdir}/${src_patch_name} +export bin_pkg=${topdir}/${bin_pkg_name} +export srcdir=${topdir}/${PKG}-${VER} +export objdir=${srcdir}/.build +export instdir=${srcdir}/.inst +export srcinstdir=${srcdir}/.sinst +export checkfile=${topdir}/${FULLPKG}.check +# run on +host=i686-pc-cygwin +# if this package creates binaries, they run on +target=i686-pc-cygwin +prefix=/usr +sysconfdir=/etc +MY_CFLAGS="-O2" +MY_CXXFLAGS="-O2" +MY_LDFLAGS= + +mkdirs() { + (cd ${topdir} && \ + mkdir -p ${objdir} && \ + mkdir -p ${instdir} && \ + mkdir -p ${srcinstdir} ) +} +prep() { + (cd ${topdir} && \ + tar xvzf ${src_orig_pkg} ; \ + cd ${topdir} && \ + patch -p0 < ${src_patch} \ + && mkdirs ) +} +conf() { + (cd ${objdir} && \ + CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ + CXXFLAGS="${MY_CXXFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ + ${srcdir}/configure --host=${host} --target=${target} \ + --srcdir=${srcdir} --prefix=${prefix} \ + --exec-prefix=${prefix} --sysconfdir=${sysconfdir} \ + --libdir=/lib --includedir=${prefix}/include \ + --libexecdir='${sbindir}' --localstatedir=/var \ + --datadir='${prefix}/share' +) +} +build() { + (cd ${objdir} && \ + CFLAGS="${MY_CFLAGS}" make ) +} +check() { + (cd ${objdir} && \ + make test | tee ${checkfile} 2>&1 ) +} +clean() { + (cd ${objdir} && \ + make clean ) +} +install() { + (cd ${objdir} && \ + make install DESTDIR=${instdir} + if [ -f ${instdir}${prefix}/info/dir ] ; then \ + rm ${instdir}${prefix}/info/dir ; \ + fi && \ + if [ ! -d ${instdir}${prefix}/doc/${PKG}-${VER} ]; then \ + mkdir -p ${instdir}${prefix}/doc/${PKG}-${VER} ; \ + fi && \ + if [ ! -d ${instdir}${prefix}/doc/Cygwin ]; then \ + mkdir -p ${instdir}${prefix}/doc/Cygwin ; \ + fi && \ + templist=""; \ + for f in ${srcdir}/ANNOUNCE ${srcdir}/CHANGES ${srcdir}/INSTALL \ + ${srcdir}/KNOWNBUG ${srcdir}/LICENSE ${srcdir}/README \ + ${srcdir}/AUTHORS ${srcdir}/KNOWNBUG ${srcdir}/COPYING \ + ${srcdir}/doc/tutorial.pdf \ + ${srcdir}/Examples/tutorial/tutorial.cpp \ + ${srcdir}/TODO ; do \ + if [ -f $f ] ; then \ + templist="$templist $f"; \ + fi ; \ + done && \ + if [ ! "x$templist" = "x" ]; then \ + /usr/bin/install -m 644 $templist \ + ${instdir}${prefix}/doc/${PKG}-${VER} ; + fi && \ + if [ -f ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README ]; then \ + /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/${PKG}-${VER}.README \ + ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ + else \ + if [ -f ${srcdir}/CYGWIN-PATCHES/README ]; then \ + /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/README \ + ${instdir}${prefix}/doc/Cygwin/${PKG}-${VER}.README ; \ + fi ;\ + fi ; ) +} +strip() { + (cd ${instdir} && \ + find . -name "*.dll" | xargs strip > /dev/null 2>&1 + find . -name "*.exe" | xargs strip > /dev/null 2>&1 ) +} +pkg() { + (cd ${instdir} && \ + tar cvjf ${bin_pkg} * ) +} +mkpatch() { + (cd ${srcdir} && \ + tar xvzf ${src_orig_pkg} ;\ + mv ${PKG}-${VER} ../${PKG}-${VER}-orig && \ + cd ${topdir} && \ + diff -urN -x '.build' -x '.inst' -x '.sinst' \ + ${PKG}-${VER}-orig ${PKG}-${VER} > \ + ${srcinstdir}/${src_patch_name} ; \ + rm -rf ${PKG}-${VER}-orig ) +} +spkg() { + (mkpatch && \ + cp ${src_orig_pkg} ${srcinstdir}/${src_orig_pkg_name} && \ + cp $0 ${srcinstdir}/`basename $0` && \ + cd ${srcinstdir} && \ + tar cvjf ${src_pkg} * ) +} +finish() { + rm -rf ${srcdir} +} +case $1 in + prep) prep ; STATUS=$? ;; + mkdirs) mkdirs; STATUS=$? ;; + conf) conf ; STATUS=$? ;; + build) build ; STATUS=$? ;; + check) check ; STATUS=$? ;; + clean) clean ; STATUS=$? ;; + install) install ; STATUS=$? ;; + strip) strip ; STATUS=$? ;; + package) pkg ; STATUS=$? ;; + pkg) pkg ; STATUS=$? ;; + mkpatch) mkpatch ; STATUS=$? ;; + src-package) spkg ; STATUS=$? ;; + spkg) spkg ; STATUS=$? ;; + finish) finish ; STATUS=$? ;; + all) prep && conf && build && install && \ + strip && pkg && spkg && finish ; \ + STATUS=$? ;; + *) echo "Error: bad arguments" ; exit 1 ;; +esac +exit ${STATUS} + + diff --git a/doc/Makefile.in b/doc/Makefile.in index 6499297..6f4cf65 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,315 +1,315 @@ -# Makefile.in generated by automake 1.11.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -subdir = doc -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EXEEXT = @EXEEXT@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = elfio.docbook elfio.pdf -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = doc +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EXEEXT = @EXEEXT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = elfio.docbook elfio.pdf +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/doc/images/callouts/1.svg b/doc/images/callouts/1.svg index e2e87dc..e80c55b 100644 --- a/doc/images/callouts/1.svg +++ b/doc/images/callouts/1.svg @@ -1,15 +1,15 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M10.428,10.411h0.56c3.78,0,4.788-1.96,4.872-3.444h3.22v19.88h-3.92V13.154h-4.732V10.411z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M10.428,10.411h0.56c3.78,0,4.788-1.96,4.872-3.444h3.22v19.88h-3.92V13.154h-4.732V10.411z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/10.svg b/doc/images/callouts/10.svg index 4740f58..ee80861 100644 --- a/doc/images/callouts/10.svg +++ b/doc/images/callouts/10.svg @@ -1,18 +1,18 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.815,10.758h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.11H3.815V10.758z"/> - <path style="fill:#FFFFFF;" d="M22.175,7.806c4.009,0,5.904,2.76,5.904,8.736c0,5.975-1.896,8.76-5.904,8.76 - c-4.008,0-5.904-2.785-5.904-8.76C16.271,10.566,18.167,7.806,22.175,7.806z M22.175,22.613c1.921,0,2.448-1.68,2.448-6.071 - c0-4.393-0.527-6.049-2.448-6.049c-1.92,0-2.448,1.656-2.448,6.049C19.727,20.934,20.255,22.613,22.175,22.613z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.815,10.758h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.11H3.815V10.758z"/> + <path style="fill:#FFFFFF;" d="M22.175,7.806c4.009,0,5.904,2.76,5.904,8.736c0,5.975-1.896,8.76-5.904,8.76 + c-4.008,0-5.904-2.785-5.904-8.76C16.271,10.566,18.167,7.806,22.175,7.806z M22.175,22.613c1.921,0,2.448-1.68,2.448-6.071 + c0-4.393-0.527-6.049-2.448-6.049c-1.92,0-2.448,1.656-2.448,6.049C19.727,20.934,20.255,22.613,22.175,22.613z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/11.svg b/doc/images/callouts/11.svg index 09a0b2c..413ce48 100644 --- a/doc/images/callouts/11.svg +++ b/doc/images/callouts/11.svg @@ -1,16 +1,16 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M5.209,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H5.209V10.412z"/> - <path style="fill:#FFFFFF;" d="M18.553,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.359V12.764h-4.056V10.412z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M5.209,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H5.209V10.412z"/> + <path style="fill:#FFFFFF;" d="M18.553,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.359V12.764h-4.056V10.412z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/12.svg b/doc/images/callouts/12.svg index 9794044..319f65b 100644 --- a/doc/images/callouts/12.svg +++ b/doc/images/callouts/12.svg @@ -1,18 +1,18 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M4.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.813V10.412z"/> - <path style="fill:#FFFFFF;" d="M17.316,13.484c0-5.545,4.056-6.024,5.568-6.024c3.265,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.553,5.544c-2.256,1.584-3.432,2.353-3.815,3.145h7.392V24.5h-11.64c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.353-2.424c-2.352,0-2.423,1.944-2.447,3.192H17.316z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M4.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.813V10.412z"/> + <path style="fill:#FFFFFF;" d="M17.316,13.484c0-5.545,4.056-6.024,5.568-6.024c3.265,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.553,5.544c-2.256,1.584-3.432,2.353-3.815,3.145h7.392V24.5h-11.64c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.353-2.424c-2.352,0-2.423,1.944-2.447,3.192H17.316z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/13.svg b/doc/images/callouts/13.svg index 64268bb..bd67131 100644 --- a/doc/images/callouts/13.svg +++ b/doc/images/callouts/13.svg @@ -1,20 +1,20 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H3.813V10.412z"/> - <path style="fill:#FFFFFF;" d="M20.611,14.636h0.529c1.008,0,2.855-0.096,2.855-2.304c0-0.624-0.288-2.185-2.137-2.185 - c-2.303,0-2.303,2.185-2.303,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.279,0,5.279,1.152,5.279,4.752 - c0,1.728-1.08,2.808-2.039,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.377,5.496-5.809,5.496 - c-1.607,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.52-0.911,2.52-2.808 - c0-2.328-2.256-2.424-3.816-2.424V14.636z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H3.813V10.412z"/> + <path style="fill:#FFFFFF;" d="M20.611,14.636h0.529c1.008,0,2.855-0.096,2.855-2.304c0-0.624-0.288-2.185-2.137-2.185 + c-2.303,0-2.303,2.185-2.303,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.279,0,5.279,1.152,5.279,4.752 + c0,1.728-1.08,2.808-2.039,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.377,5.496-5.809,5.496 + c-1.607,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.52-0.911,2.52-2.808 + c0-2.328-2.256-2.424-3.816-2.424V14.636z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/14.svg b/doc/images/callouts/14.svg index 469aa97..025770d 100644 --- a/doc/images/callouts/14.svg +++ b/doc/images/callouts/14.svg @@ -1,17 +1,17 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M4.146,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.146V10.412z"/> - <path style="fill:#FFFFFF;" d="M28.457,20.732h-1.896V24.5h-3.36v-3.768h-6.72v-2.904L22.746,7.46h3.815v10.656h1.896V20.732z - M23.201,18.116c0-4.128,0.072-6.792,0.072-7.32h-0.048l-4.272,7.32H23.201z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M4.146,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.146V10.412z"/> + <path style="fill:#FFFFFF;" d="M28.457,20.732h-1.896V24.5h-3.36v-3.768h-6.72v-2.904L22.746,7.46h3.815v10.656h1.896V20.732z + M23.201,18.116c0-4.128,0.072-6.792,0.072-7.32h-0.048l-4.272,7.32H23.201z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/15.svg b/doc/images/callouts/15.svg index 8202233..52d6284 100644 --- a/doc/images/callouts/15.svg +++ b/doc/images/callouts/15.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.479,11.079h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.43H3.479V11.079z"/> - <path style="fill:#FFFFFF;" d="M19.342,14.943c0.625-0.433,1.392-0.937,3.048-0.937c2.279,0,5.16,1.584,5.16,5.496 - c0,2.328-1.176,6.121-6.192,6.121c-2.664,0-5.376-1.584-5.544-5.016h3.36c0.144,1.391,0.888,2.326,2.376,2.326 - c1.607,0,2.544-1.367,2.544-3.191c0-1.512-0.72-3.047-2.496-3.047c-0.456,0-1.608,0.023-2.256,1.223l-3-0.143l1.176-9.361h9.36 - v2.832h-6.937L19.342,14.943z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.479,11.079h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.43H3.479V11.079z"/> + <path style="fill:#FFFFFF;" d="M19.342,14.943c0.625-0.433,1.392-0.937,3.048-0.937c2.279,0,5.16,1.584,5.16,5.496 + c0,2.328-1.176,6.121-6.192,6.121c-2.664,0-5.376-1.584-5.544-5.016h3.36c0.144,1.391,0.888,2.326,2.376,2.326 + c1.607,0,2.544-1.367,2.544-3.191c0-1.512-0.72-3.047-2.496-3.047c-0.456,0-1.608,0.023-2.256,1.223l-3-0.143l1.176-9.361h9.36 + v2.832h-6.937L19.342,14.943z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/16.svg b/doc/images/callouts/16.svg index 01d6bf8..2f8386a 100644 --- a/doc/images/callouts/16.svg +++ b/doc/images/callouts/16.svg @@ -1,20 +1,20 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H3.813V10.412z"/> - <path style="fill:#FFFFFF;" d="M24.309,11.78c-0.097-0.96-0.721-1.633-1.969-1.633c-2.184,0-2.688,2.496-2.808,4.704L19.58,14.9 - c0.456-0.624,1.296-1.416,3.191-1.416c3.529,0,5.209,2.712,5.209,5.256c0,3.72-2.28,6.216-5.568,6.216 - c-5.16,0-6.168-4.32-6.168-8.568c0-3.24,0.432-8.928,6.336-8.928c0.695,0,2.641,0.264,3.48,1.104 - c0.936,0.912,1.271,1.416,1.584,3.217H24.309z M22.172,16.172c-1.271,0-2.568,0.792-2.568,2.928c0,1.849,1.056,3.168,2.664,3.168 - c1.225,0,2.353-0.936,2.353-3.239C24.62,16.868,23.229,16.172,22.172,16.172z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H3.813V10.412z"/> + <path style="fill:#FFFFFF;" d="M24.309,11.78c-0.097-0.96-0.721-1.633-1.969-1.633c-2.184,0-2.688,2.496-2.808,4.704L19.58,14.9 + c0.456-0.624,1.296-1.416,3.191-1.416c3.529,0,5.209,2.712,5.209,5.256c0,3.72-2.28,6.216-5.568,6.216 + c-5.16,0-6.168-4.32-6.168-8.568c0-3.24,0.432-8.928,6.336-8.928c0.695,0,2.641,0.264,3.48,1.104 + c0.936,0.912,1.271,1.416,1.584,3.217H24.309z M22.172,16.172c-1.271,0-2.568,0.792-2.568,2.928c0,1.849,1.056,3.168,2.664,3.168 + c1.225,0,2.353-0.936,2.353-3.239C24.62,16.868,23.229,16.172,22.172,16.172z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/17.svg b/doc/images/callouts/17.svg index 0a04c55..ccd31f6 100644 --- a/doc/images/callouts/17.svg +++ b/doc/images/callouts/17.svg @@ -1,17 +1,17 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.479,11.079h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.43H3.479V11.079z"/> - <path style="fill:#FFFFFF;" d="M27.838,11.006c-1.631,1.776-5.807,6.816-6.215,14.16h-3.457c0.36-6.816,4.632-12.24,6.072-13.776 - h-8.472l0.072-2.976h12V11.006z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.479,11.079h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.43H3.479V11.079z"/> + <path style="fill:#FFFFFF;" d="M27.838,11.006c-1.631,1.776-5.807,6.816-6.215,14.16h-3.457c0.36-6.816,4.632-12.24,6.072-13.776 + h-8.472l0.072-2.976h12V11.006z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/18.svg b/doc/images/callouts/18.svg index 1cb891b..fcd493d 100644 --- a/doc/images/callouts/18.svg +++ b/doc/images/callouts/18.svg @@ -1,21 +1,21 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M4.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.813V10.412z"/> - <path style="fill:#FFFFFF;" d="M23.172,24.956c-4.392,0-5.904-2.856-5.904-5.185c0-0.863,0-3.119,2.592-4.319 - c-1.344-0.672-2.064-1.752-2.064-3.336c0-2.904,2.328-4.656,5.304-4.656c3.528,0,5.4,2.088,5.4,4.44 - c0,1.464-0.6,2.712-1.968,3.432c1.632,0.815,2.544,1.896,2.544,4.104C29.076,21.596,27.684,24.956,23.172,24.956z M23.124,16.916 - c-1.224,0-2.4,0.792-2.4,2.64c0,1.632,0.936,2.712,2.472,2.712c1.752,0,2.424-1.512,2.424-2.688 - C25.62,18.38,24.996,16.916,23.124,16.916z M25.284,12.26c0-1.296-0.888-2.112-1.968-2.112c-1.512,0-2.305,0.864-2.305,2.112 - c0,1.008,0.744,2.112,2.185,2.112C24.516,14.372,25.284,13.484,25.284,12.26z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M4.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.813V10.412z"/> + <path style="fill:#FFFFFF;" d="M23.172,24.956c-4.392,0-5.904-2.856-5.904-5.185c0-0.863,0-3.119,2.592-4.319 + c-1.344-0.672-2.064-1.752-2.064-3.336c0-2.904,2.328-4.656,5.304-4.656c3.528,0,5.4,2.088,5.4,4.44 + c0,1.464-0.6,2.712-1.968,3.432c1.632,0.815,2.544,1.896,2.544,4.104C29.076,21.596,27.684,24.956,23.172,24.956z M23.124,16.916 + c-1.224,0-2.4,0.792-2.4,2.64c0,1.632,0.936,2.712,2.472,2.712c1.752,0,2.424-1.512,2.424-2.688 + C25.62,18.38,24.996,16.916,23.124,16.916z M25.284,12.26c0-1.296-0.888-2.112-1.968-2.112c-1.512,0-2.305,0.864-2.305,2.112 + c0,1.008,0.744,2.112,2.185,2.112C24.516,14.372,25.284,13.484,25.284,12.26z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/19.svg b/doc/images/callouts/19.svg index e6fbb17..8225076 100644 --- a/doc/images/callouts/19.svg +++ b/doc/images/callouts/19.svg @@ -1,20 +1,20 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M4.146,10.746h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.041h-3.36V13.097H4.146V10.746z"/> - <path style="fill:#FFFFFF;" d="M20.225,20.898v0.023c0.192,1.176,0.936,1.68,1.968,1.68c1.392,0,2.783-1.176,2.808-4.752 - l-0.048-0.049c-0.768,1.152-2.088,1.441-3.24,1.441c-3.264,0-5.16-2.473-5.16-5.329c0-4.176,2.472-6.12,5.808-6.12 - c5.904,0,6,6.36,6,8.76c0,6.601-3.12,8.736-6.192,8.736c-2.904,0-4.992-1.68-5.28-4.391H20.225z M22.434,16.553 - c1.176,0,2.472-0.84,2.472-2.855c0-1.944-0.841-3.145-2.568-3.145c-0.864,0-2.424,0.433-2.424,2.88 - C19.913,16.001,21.161,16.553,22.434,16.553z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M4.146,10.746h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.041h-3.36V13.097H4.146V10.746z"/> + <path style="fill:#FFFFFF;" d="M20.225,20.898v0.023c0.192,1.176,0.936,1.68,1.968,1.68c1.392,0,2.783-1.176,2.808-4.752 + l-0.048-0.049c-0.768,1.152-2.088,1.441-3.24,1.441c-3.264,0-5.16-2.473-5.16-5.329c0-4.176,2.472-6.12,5.808-6.12 + c5.904,0,6,6.36,6,8.76c0,6.601-3.12,8.736-6.192,8.736c-2.904,0-4.992-1.68-5.28-4.391H20.225z M22.434,16.553 + c1.176,0,2.472-0.84,2.472-2.855c0-1.944-0.841-3.145-2.568-3.145c-0.864,0-2.424,0.433-2.424,2.88 + C19.913,16.001,21.161,16.553,22.434,16.553z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/2.svg b/doc/images/callouts/2.svg index 07d0339..8016120 100644 --- a/doc/images/callouts/2.svg +++ b/doc/images/callouts/2.svg @@ -1,17 +1,17 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M9.668,12.328c0-6.469,4.732-7.028,6.496-7.028c3.808,0,6.833,2.24,6.833,6.271 - c0,3.416-2.213,5.152-4.145,6.469c-2.632,1.848-4.004,2.744-4.452,3.668h8.624v3.472H9.444c0.14-2.324,0.308-4.76,4.62-7.896 - c3.584-2.604,5.012-3.612,5.012-5.853c0-1.315-0.84-2.828-2.744-2.828c-2.744,0-2.828,2.269-2.856,3.725H9.668z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M9.668,12.328c0-6.469,4.732-7.028,6.496-7.028c3.808,0,6.833,2.24,6.833,6.271 + c0,3.416-2.213,5.152-4.145,6.469c-2.632,1.848-4.004,2.744-4.452,3.668h8.624v3.472H9.444c0.14-2.324,0.308-4.76,4.62-7.896 + c3.584-2.604,5.012-3.612,5.012-5.853c0-1.315-0.84-2.828-2.744-2.828c-2.744,0-2.828,2.269-2.856,3.725H9.668z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/20.svg b/doc/images/callouts/20.svg index ccbfd40..48b86ca 100644 --- a/doc/images/callouts/20.svg +++ b/doc/images/callouts/20.svg @@ -1,20 +1,20 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> - <path style="fill:#FFFFFF;" d="M23.172,7.46c4.008,0,5.904,2.76,5.904,8.736c0,5.976-1.896,8.76-5.904,8.76 - s-5.904-2.784-5.904-8.76C17.268,10.22,19.164,7.46,23.172,7.46z M23.172,22.268c1.92,0,2.448-1.68,2.448-6.071 - c0-4.393-0.528-6.049-2.448-6.049s-2.448,1.656-2.448,6.049C20.724,20.588,21.252,22.268,23.172,22.268z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> + <path style="fill:#FFFFFF;" d="M23.172,7.46c4.008,0,5.904,2.76,5.904,8.736c0,5.976-1.896,8.76-5.904,8.76 + s-5.904-2.784-5.904-8.76C17.268,10.22,19.164,7.46,23.172,7.46z M23.172,22.268c1.92,0,2.448-1.68,2.448-6.071 + c0-4.393-0.528-6.049-2.448-6.049s-2.448,1.656-2.448,6.049C20.724,20.588,21.252,22.268,23.172,22.268z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/21.svg b/doc/images/callouts/21.svg index 93ec53f..e26a2d7 100644 --- a/doc/images/callouts/21.svg +++ b/doc/images/callouts/21.svg @@ -1,18 +1,18 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M5.306,13.151c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392v2.976H5.114c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H5.306z"/> - <path style="fill:#FFFFFF;" d="M19.49,10.079h0.48c3.239,0,4.104-1.681,4.176-2.952h2.761v17.04h-3.361V12.431H19.49V10.079z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M5.306,13.151c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392v2.976H5.114c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H5.306z"/> + <path style="fill:#FFFFFF;" d="M19.49,10.079h0.48c3.239,0,4.104-1.681,4.176-2.952h2.761v17.04h-3.361V12.431H19.49V10.079z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/22.svg b/doc/images/callouts/22.svg index f48c5f3..5e44719 100644 --- a/doc/images/callouts/22.svg +++ b/doc/images/callouts/22.svg @@ -1,20 +1,20 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> - <path style="fill:#FFFFFF;" d="M17.316,13.484c0-5.545,4.056-6.024,5.568-6.024c3.265,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.553,5.544c-2.256,1.584-3.432,2.353-3.815,3.145h7.392V24.5h-11.64c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.353-2.424c-2.352,0-2.423,1.944-2.447,3.192H17.316z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> + <path style="fill:#FFFFFF;" d="M17.316,13.484c0-5.545,4.056-6.024,5.568-6.024c3.265,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.553,5.544c-2.256,1.584-3.432,2.353-3.815,3.145h7.392V24.5h-11.64c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.353-2.424c-2.352,0-2.423,1.944-2.447,3.192H17.316z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/23.svg b/doc/images/callouts/23.svg index 6624212..77c709d 100644 --- a/doc/images/callouts/23.svg +++ b/doc/images/callouts/23.svg @@ -1,22 +1,22 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> - <path style="fill:#FFFFFF;" d="M21.612,14.636h0.528c1.008,0,2.855-0.096,2.855-2.304c0-0.624-0.287-2.185-2.136-2.185 - c-2.304,0-2.304,2.185-2.304,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.28,0,5.28,1.152,5.28,4.752 - c0,1.728-1.08,2.808-2.04,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.377,5.496-5.809,5.496 - c-1.607,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.521-0.911,2.521-2.808 - c0-2.328-2.257-2.424-3.816-2.424V14.636z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> + <path style="fill:#FFFFFF;" d="M21.612,14.636h0.528c1.008,0,2.855-0.096,2.855-2.304c0-0.624-0.287-2.185-2.136-2.185 + c-2.304,0-2.304,2.185-2.304,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.28,0,5.28,1.152,5.28,4.752 + c0,1.728-1.08,2.808-2.04,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.377,5.496-5.809,5.496 + c-1.607,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.521-0.911,2.521-2.808 + c0-2.328-2.257-2.424-3.816-2.424V14.636z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/24.svg b/doc/images/callouts/24.svg index a3d5525..ecf08fd 100644 --- a/doc/images/callouts/24.svg +++ b/doc/images/callouts/24.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M4.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H4.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H4.972z"/> - <path style="fill:#FFFFFF;" d="M30.124,20.732h-1.896V24.5h-3.36v-3.768h-6.72v-2.904L24.412,7.46h3.816v10.656h1.896V20.732z - M24.868,18.116c0-4.128,0.071-6.792,0.071-7.32h-0.047l-4.272,7.32H24.868z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M4.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H4.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H4.972z"/> + <path style="fill:#FFFFFF;" d="M30.124,20.732h-1.896V24.5h-3.36v-3.768h-6.72v-2.904L24.412,7.46h3.816v10.656h1.896V20.732z + M24.868,18.116c0-4.128,0.071-6.792,0.071-7.32h-0.047l-4.272,7.32H24.868z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/25.svg b/doc/images/callouts/25.svg index 56614a9..7198800 100644 --- a/doc/images/callouts/25.svg +++ b/doc/images/callouts/25.svg @@ -1,21 +1,21 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> - <path style="fill:#FFFFFF;" d="M20.676,14.276c0.624-0.433,1.393-0.937,3.049-0.937c2.279,0,5.16,1.584,5.16,5.496 - c0,2.328-1.177,6.12-6.193,6.12c-2.664,0-5.375-1.584-5.543-5.016h3.36c0.144,1.392,0.889,2.327,2.376,2.327 - c1.608,0,2.544-1.367,2.544-3.191c0-1.513-0.72-3.048-2.496-3.048c-0.455,0-1.607,0.023-2.256,1.224l-3-0.144l1.176-9.36h9.36 - v2.832h-6.937L20.676,14.276z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> + <path style="fill:#FFFFFF;" d="M20.676,14.276c0.624-0.433,1.393-0.937,3.049-0.937c2.279,0,5.16,1.584,5.16,5.496 + c0,2.328-1.177,6.12-6.193,6.12c-2.664,0-5.375-1.584-5.543-5.016h3.36c0.144,1.392,0.889,2.327,2.376,2.327 + c1.608,0,2.544-1.367,2.544-3.191c0-1.513-0.72-3.048-2.496-3.048c-0.455,0-1.607,0.023-2.256,1.224l-3-0.144l1.176-9.36h9.36 + v2.832h-6.937L20.676,14.276z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/26.svg b/doc/images/callouts/26.svg index 56faeac..cf18de8 100644 --- a/doc/images/callouts/26.svg +++ b/doc/images/callouts/26.svg @@ -1,22 +1,22 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> - <path style="fill:#FFFFFF;" d="M25.309,11.78c-0.097-0.96-0.721-1.633-1.969-1.633c-2.184,0-2.688,2.496-2.808,4.704L20.58,14.9 - c0.456-0.624,1.296-1.416,3.191-1.416c3.529,0,5.209,2.712,5.209,5.256c0,3.72-2.28,6.216-5.568,6.216 - c-5.16,0-6.168-4.32-6.168-8.568c0-3.24,0.432-8.928,6.336-8.928c0.695,0,2.641,0.264,3.48,1.104 - c0.936,0.912,1.271,1.416,1.584,3.217H25.309z M23.172,16.172c-1.271,0-2.568,0.792-2.568,2.928c0,1.849,1.056,3.168,2.664,3.168 - c1.225,0,2.353-0.936,2.353-3.239C25.62,16.868,24.229,16.172,23.172,16.172z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> + <path style="fill:#FFFFFF;" d="M25.309,11.78c-0.097-0.96-0.721-1.633-1.969-1.633c-2.184,0-2.688,2.496-2.808,4.704L20.58,14.9 + c0.456-0.624,1.296-1.416,3.191-1.416c3.529,0,5.209,2.712,5.209,5.256c0,3.72-2.28,6.216-5.568,6.216 + c-5.16,0-6.168-4.32-6.168-8.568c0-3.24,0.432-8.928,6.336-8.928c0.695,0,2.641,0.264,3.48,1.104 + c0.936,0.912,1.271,1.416,1.584,3.217H25.309z M23.172,16.172c-1.271,0-2.568,0.792-2.568,2.928c0,1.849,1.056,3.168,2.664,3.168 + c1.225,0,2.353-0.936,2.353-3.239C25.62,16.868,24.229,16.172,23.172,16.172z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/27.svg b/doc/images/callouts/27.svg index a75c812..262daef 100644 --- a/doc/images/callouts/27.svg +++ b/doc/images/callouts/27.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> - <path style="fill:#FFFFFF;" d="M29.172,10.34c-1.632,1.776-5.808,6.816-6.216,14.16H19.5c0.36-6.816,4.632-12.24,6.072-13.776 - H17.1l0.072-2.976h12V10.34z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> + <path style="fill:#FFFFFF;" d="M29.172,10.34c-1.632,1.776-5.808,6.816-6.216,14.16H19.5c0.36-6.816,4.632-12.24,6.072-13.776 + H17.1l0.072-2.976h12V10.34z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/28.svg b/doc/images/callouts/28.svg index 7f8cf1a..e52bc6b 100644 --- a/doc/images/callouts/28.svg +++ b/doc/images/callouts/28.svg @@ -1,23 +1,23 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> - <path style="fill:#FFFFFF;" d="M23.172,24.956c-4.392,0-5.904-2.856-5.904-5.185c0-0.863,0-3.119,2.592-4.319 - c-1.344-0.672-2.064-1.752-2.064-3.336c0-2.904,2.328-4.656,5.304-4.656c3.528,0,5.4,2.088,5.4,4.44 - c0,1.464-0.6,2.712-1.968,3.432c1.632,0.815,2.544,1.896,2.544,4.104C29.076,21.596,27.684,24.956,23.172,24.956z M23.124,16.916 - c-1.224,0-2.4,0.792-2.4,2.64c0,1.632,0.936,2.712,2.472,2.712c1.752,0,2.424-1.512,2.424-2.688 - C25.62,18.38,24.996,16.916,23.124,16.916z M25.284,12.26c0-1.296-0.888-2.112-1.968-2.112c-1.512,0-2.305,0.864-2.305,2.112 - c0,1.008,0.744,2.112,2.185,2.112C24.516,14.372,25.284,13.484,25.284,12.26z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> + <path style="fill:#FFFFFF;" d="M23.172,24.956c-4.392,0-5.904-2.856-5.904-5.185c0-0.863,0-3.119,2.592-4.319 + c-1.344-0.672-2.064-1.752-2.064-3.336c0-2.904,2.328-4.656,5.304-4.656c3.528,0,5.4,2.088,5.4,4.44 + c0,1.464-0.6,2.712-1.968,3.432c1.632,0.815,2.544,1.896,2.544,4.104C29.076,21.596,27.684,24.956,23.172,24.956z M23.124,16.916 + c-1.224,0-2.4,0.792-2.4,2.64c0,1.632,0.936,2.712,2.472,2.712c1.752,0,2.424-1.512,2.424-2.688 + C25.62,18.38,24.996,16.916,23.124,16.916z M25.284,12.26c0-1.296-0.888-2.112-1.968-2.112c-1.512,0-2.305,0.864-2.305,2.112 + c0,1.008,0.744,2.112,2.185,2.112C24.516,14.372,25.284,13.484,25.284,12.26z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/29.svg b/doc/images/callouts/29.svg index cb63adf..9e47e30 100644 --- a/doc/images/callouts/29.svg +++ b/doc/images/callouts/29.svg @@ -1,22 +1,22 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 - c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 - c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> - <path style="fill:#FFFFFF;" d="M20.893,20.564v0.023c0.191,1.176,0.936,1.68,1.967,1.68c1.393,0,2.785-1.176,2.809-4.752 - l-0.048-0.048c-0.769,1.152-2.088,1.44-3.24,1.44c-3.264,0-5.16-2.473-5.16-5.328c0-4.176,2.472-6.12,5.807-6.12 - c5.904,0,6.001,6.36,6.001,8.76c0,6.601-3.12,8.736-6.192,8.736c-2.904,0-4.992-1.68-5.28-4.392H20.893z M23.1,16.22 - c1.176,0,2.473-0.84,2.473-2.855c0-1.944-0.84-3.145-2.568-3.145c-0.863,0-2.424,0.433-2.424,2.88 - C20.58,15.668,21.828,16.22,23.1,16.22z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376 + c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768 + c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/> + <path style="fill:#FFFFFF;" d="M20.893,20.564v0.023c0.191,1.176,0.936,1.68,1.967,1.68c1.393,0,2.785-1.176,2.809-4.752 + l-0.048-0.048c-0.769,1.152-2.088,1.44-3.24,1.44c-3.264,0-5.16-2.473-5.16-5.328c0-4.176,2.472-6.12,5.807-6.12 + c5.904,0,6.001,6.36,6.001,8.76c0,6.601-3.12,8.736-6.192,8.736c-2.904,0-4.992-1.68-5.28-4.392H20.893z M23.1,16.22 + c1.176,0,2.473-0.84,2.473-2.855c0-1.944-0.84-3.145-2.568-3.145c-0.863,0-2.424,0.433-2.424,2.88 + C20.58,15.668,21.828,16.22,23.1,16.22z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/3.svg b/doc/images/callouts/3.svg index 918be80..fcb52c9 100644 --- a/doc/images/callouts/3.svg +++ b/doc/images/callouts/3.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M15.127,14.005h0.616c1.176,0,3.332-0.112,3.332-2.688c0-0.728-0.336-2.548-2.492-2.548 - c-2.688,0-2.688,2.548-2.688,3.248h-3.64c0-3.724,2.1-6.384,6.58-6.384c2.66,0,6.16,1.344,6.16,5.544 - c0,2.016-1.261,3.276-2.38,3.78v0.056c0.699,0.196,2.996,1.232,2.996,4.62c0,3.752-2.772,6.412-6.776,6.412 - c-1.876,0-6.916-0.42-6.916-6.636h3.836l-0.028,0.027c0,1.064,0.28,3.473,2.912,3.473c1.568,0,2.94-1.064,2.94-3.276 - c0-2.716-2.632-2.828-4.452-2.828V14.005z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M15.127,14.005h0.616c1.176,0,3.332-0.112,3.332-2.688c0-0.728-0.336-2.548-2.492-2.548 + c-2.688,0-2.688,2.548-2.688,3.248h-3.64c0-3.724,2.1-6.384,6.58-6.384c2.66,0,6.16,1.344,6.16,5.544 + c0,2.016-1.261,3.276-2.38,3.78v0.056c0.699,0.196,2.996,1.232,2.996,4.62c0,3.752-2.772,6.412-6.776,6.412 + c-1.876,0-6.916-0.42-6.916-6.636h3.836l-0.028,0.027c0,1.064,0.28,3.473,2.912,3.473c1.568,0,2.94-1.064,2.94-3.276 + c0-2.716-2.632-2.828-4.452-2.828V14.005z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/30.svg b/doc/images/callouts/30.svg index dc43ba1..3718b17 100644 --- a/doc/images/callouts/30.svg +++ b/doc/images/callouts/30.svg @@ -1,22 +1,22 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M8.268,14.636h0.528c1.008,0,2.856-0.096,2.856-2.304c0-0.624-0.288-2.185-2.136-2.185 - c-2.304,0-2.304,2.185-2.304,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.28,0,5.28,1.152,5.28,4.752 - c0,1.728-1.08,2.808-2.04,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.376,5.496-5.808,5.496 - c-1.608,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.52-0.911,2.52-2.808 - c0-2.328-2.256-2.424-3.816-2.424V14.636z"/> - <path style="fill:#FFFFFF;" d="M23.172,7.46c4.008,0,5.904,2.76,5.904,8.736c0,5.976-1.896,8.76-5.904,8.76 - s-5.904-2.784-5.904-8.76C17.268,10.22,19.164,7.46,23.172,7.46z M23.172,22.268c1.92,0,2.448-1.68,2.448-6.071 - c0-4.393-0.528-6.049-2.448-6.049s-2.448,1.656-2.448,6.049C20.724,20.588,21.252,22.268,23.172,22.268z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M8.268,14.636h0.528c1.008,0,2.856-0.096,2.856-2.304c0-0.624-0.288-2.185-2.136-2.185 + c-2.304,0-2.304,2.185-2.304,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.28,0,5.28,1.152,5.28,4.752 + c0,1.728-1.08,2.808-2.04,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.376,5.496-5.808,5.496 + c-1.608,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.52-0.911,2.52-2.808 + c0-2.328-2.256-2.424-3.816-2.424V14.636z"/> + <path style="fill:#FFFFFF;" d="M23.172,7.46c4.008,0,5.904,2.76,5.904,8.736c0,5.976-1.896,8.76-5.904,8.76 + s-5.904-2.784-5.904-8.76C17.268,10.22,19.164,7.46,23.172,7.46z M23.172,22.268c1.92,0,2.448-1.68,2.448-6.071 + c0-4.393-0.528-6.049-2.448-6.049s-2.448,1.656-2.448,6.049C20.724,20.588,21.252,22.268,23.172,22.268z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/4.svg b/doc/images/callouts/4.svg index 8eb6a53..baeb51e 100644 --- a/doc/images/callouts/4.svg +++ b/doc/images/callouts/4.svg @@ -1,16 +1,16 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M21.891,20.784h-2.212v4.396h-3.92v-4.396h-7.84v-3.389L15.227,5.3h4.452v12.432h2.212V20.784z - M15.759,17.731c0-4.815,0.084-7.924,0.084-8.54h-0.056l-4.984,8.54H15.759z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M21.891,20.784h-2.212v4.396h-3.92v-4.396h-7.84v-3.389L15.227,5.3h4.452v12.432h2.212V20.784z + M15.759,17.731c0-4.815,0.084-7.924,0.084-8.54h-0.056l-4.984,8.54H15.759z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/5.svg b/doc/images/callouts/5.svg index ca7a9f2..0f603b1 100644 --- a/doc/images/callouts/5.svg +++ b/doc/images/callouts/5.svg @@ -1,18 +1,18 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M14.035,14.252c0.728-0.504,1.624-1.092,3.556-1.092c2.66,0,6.02,1.848,6.02,6.411 - c0,2.717-1.372,7.141-7.224,7.141c-3.108,0-6.272-1.849-6.468-5.853h3.92c0.168,1.624,1.036,2.717,2.772,2.717 - c1.876,0,2.968-1.597,2.968-3.725c0-1.764-0.839-3.556-2.912-3.556c-0.532,0-1.876,0.028-2.632,1.428l-3.5-0.168l1.372-10.92 - h10.919v3.304h-8.092L14.035,14.252z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M14.035,14.252c0.728-0.504,1.624-1.092,3.556-1.092c2.66,0,6.02,1.848,6.02,6.411 + c0,2.717-1.372,7.141-7.224,7.141c-3.108,0-6.272-1.849-6.468-5.853h3.92c0.168,1.624,1.036,2.717,2.772,2.717 + c1.876,0,2.968-1.597,2.968-3.725c0-1.764-0.839-3.556-2.912-3.556c-0.532,0-1.876,0.028-2.632,1.428l-3.5-0.168l1.372-10.92 + h10.919v3.304h-8.092L14.035,14.252z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/6.svg b/doc/images/callouts/6.svg index 783a0b9..335d8c8 100644 --- a/doc/images/callouts/6.svg +++ b/doc/images/callouts/6.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M19.106,10.673c-0.112-1.12-0.84-1.904-2.296-1.904c-2.548,0-3.136,2.912-3.276,5.488l0.056,0.056 - c0.532-0.728,1.512-1.651,3.724-1.651c4.116,0,6.077,3.164,6.077,6.131c0,4.34-2.66,7.252-6.497,7.252 - c-6.02,0-7.196-5.039-7.196-9.996c0-3.78,0.504-10.416,7.392-10.416c0.812,0,3.08,0.308,4.061,1.288 - c1.092,1.063,1.483,1.652,1.848,3.752H19.106z M16.614,15.797c-1.484,0-2.996,0.924-2.996,3.416c0,2.156,1.232,3.697,3.108,3.697 - c1.428,0,2.745-1.094,2.745-3.781C19.471,16.609,17.846,15.797,16.614,15.797z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M19.106,10.673c-0.112-1.12-0.84-1.904-2.296-1.904c-2.548,0-3.136,2.912-3.276,5.488l0.056,0.056 + c0.532-0.728,1.512-1.651,3.724-1.651c4.116,0,6.077,3.164,6.077,6.131c0,4.34-2.66,7.252-6.497,7.252 + c-6.02,0-7.196-5.039-7.196-9.996c0-3.78,0.504-10.416,7.392-10.416c0.812,0,3.08,0.308,4.061,1.288 + c1.092,1.063,1.483,1.652,1.848,3.752H19.106z M16.614,15.797c-1.484,0-2.996,0.924-2.996,3.416c0,2.156,1.232,3.697,3.108,3.697 + c1.428,0,2.745-1.094,2.745-3.781C19.471,16.609,17.846,15.797,16.614,15.797z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/7.svg b/doc/images/callouts/7.svg index 59b3714..dc7f310 100644 --- a/doc/images/callouts/7.svg +++ b/doc/images/callouts/7.svg @@ -1,16 +1,16 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M24.28,9.66c-1.904,2.071-6.776,7.951-7.252,16.52h-4.032c0.42-7.952,5.404-14.28,7.084-16.072 - h-9.884l0.084-3.472h14V9.66z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M24.28,9.66c-1.904,2.071-6.776,7.951-7.252,16.52h-4.032c0.42-7.952,5.404-14.28,7.084-16.072 + h-9.884l0.084-3.472h14V9.66z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/8.svg b/doc/images/callouts/8.svg index c1803a3..f1dcbe6 100644 --- a/doc/images/callouts/8.svg +++ b/doc/images/callouts/8.svg @@ -1,20 +1,20 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M16.28,26.712c-5.124,0-6.888-3.332-6.888-6.048c0-1.009,0-3.641,3.024-5.04 - c-1.568-0.784-2.408-2.044-2.408-3.893c0-3.388,2.716-5.432,6.188-5.432c4.116,0,6.3,2.436,6.3,5.18 - c0,1.708-0.7,3.164-2.296,4.004c1.903,0.952,2.968,2.212,2.968,4.788C23.168,22.792,21.544,26.712,16.28,26.712z M16.224,17.332 - c-1.428,0-2.8,0.924-2.8,3.08c0,1.903,1.092,3.164,2.884,3.164c2.043,0,2.829-1.765,2.829-3.137 - C19.137,19.04,18.408,17.332,16.224,17.332z M18.744,11.899c0-1.512-1.036-2.464-2.296-2.464c-1.764,0-2.688,1.008-2.688,2.464 - c0,1.177,0.868,2.464,2.548,2.464C17.848,14.363,18.744,13.328,18.744,11.899z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M16.28,26.712c-5.124,0-6.888-3.332-6.888-6.048c0-1.009,0-3.641,3.024-5.04 + c-1.568-0.784-2.408-2.044-2.408-3.893c0-3.388,2.716-5.432,6.188-5.432c4.116,0,6.3,2.436,6.3,5.18 + c0,1.708-0.7,3.164-2.296,4.004c1.903,0.952,2.968,2.212,2.968,4.788C23.168,22.792,21.544,26.712,16.28,26.712z M16.224,17.332 + c-1.428,0-2.8,0.924-2.8,3.08c0,1.903,1.092,3.164,2.884,3.164c2.043,0,2.829-1.765,2.829-3.137 + C19.137,19.04,18.408,17.332,16.224,17.332z M18.744,11.899c0-1.512-1.036-2.464-2.296-2.464c-1.764,0-2.688,1.008-2.688,2.464 + c0,1.177,0.868,2.464,2.548,2.464C17.848,14.363,18.744,13.328,18.744,11.899z"/> + </g> +</g> +</svg> diff --git a/doc/images/callouts/9.svg b/doc/images/callouts/9.svg index bc149d3..1094594 100644 --- a/doc/images/callouts/9.svg +++ b/doc/images/callouts/9.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> -<!DOCTYPE svg [ - <!ENTITY ns_svg "http://www.w3.org/2000/svg"> - <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> -]> -<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" - style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> -<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> -<g> - <g style="enable-background:new ;"> - <path style="fill:#FFFFFF;" d="M13.953,21.921v0.027c0.224,1.372,1.092,1.961,2.296,1.961c1.624,0,3.248-1.372,3.276-5.545 - l-0.057-0.056c-0.896,1.344-2.436,1.68-3.78,1.68c-3.808,0-6.02-2.884-6.02-6.216c0-4.872,2.884-7.14,6.776-7.14 - c6.888,0,7,7.42,7,10.22c0,7.7-3.641,10.192-7.224,10.192c-3.388,0-5.824-1.96-6.16-5.124H13.953z M16.529,16.853 - c1.372,0,2.884-0.979,2.884-3.332c0-2.268-0.98-3.668-2.996-3.668c-1.008,0-2.828,0.504-2.828,3.36 - C13.589,16.209,15.045,16.853,16.529,16.853z"/> - </g> -</g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> +<!DOCTYPE svg [ + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> +]> +<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33" + style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve"> +<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/> +<g> + <g style="enable-background:new ;"> + <path style="fill:#FFFFFF;" d="M13.953,21.921v0.027c0.224,1.372,1.092,1.961,2.296,1.961c1.624,0,3.248-1.372,3.276-5.545 + l-0.057-0.056c-0.896,1.344-2.436,1.68-3.78,1.68c-3.808,0-6.02-2.884-6.02-6.216c0-4.872,2.884-7.14,6.776-7.14 + c6.888,0,7,7.42,7,10.22c0,7.7-3.641,10.192-7.224,10.192c-3.388,0-5.824-1.96-6.16-5.124H13.953z M16.529,16.853 + c1.372,0,2.884-0.979,2.884-3.332c0-2.268-0.98-3.668-2.996-3.668c-1.008,0-2.828,0.504-2.828,3.36 + C13.589,16.209,15.045,16.853,16.529,16.853z"/> + </g> +</g> +</svg> diff --git a/doc/images/caution.svg b/doc/images/caution.svg index dd84f3f..5b662c4 100644 --- a/doc/images/caution.svg +++ b/doc/images/caution.svg @@ -1,25 +1,25 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill:#FFFFFF;stroke:none;"> - <!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;"> - <!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;"> - <!ENTITY st3 "fill:none;stroke:none;"> - <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st5 "stroke:none;"> -]> -<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> - <g id="Layer_x0020_3" style="&st4;"> - <g> - <path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/> - <path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/> - <path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/> - <g> - <path style="&st5;" d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/> - </g> - </g> - </g> - <g id="crop_x0020_marks" style="&st4;"> - <path style="&st3;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill:#FFFFFF;stroke:none;"> + <!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;"> + <!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;"> + <!ENTITY st3 "fill:none;stroke:none;"> + <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st5 "stroke:none;"> +]> +<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> + <g id="Layer_x0020_3" style="&st4;"> + <g> + <path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/> + <path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/> + <path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/> + <g> + <path style="&st5;" d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/> + </g> + </g> + </g> + <g id="crop_x0020_marks" style="&st4;"> + <path style="&st3;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/doc/images/home.svg b/doc/images/home.svg index e803a31..2013053 100644 --- a/doc/images/home.svg +++ b/doc/images/home.svg @@ -1,26 +1,26 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st1 "fill:none;stroke:none;"> - <!ENTITY st2 "fill:#000000;"> - <!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:6.3469;stroke-linejoin:round;"> - <!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;"> - <!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> -]> -<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> - <g id="Layer_x0020_3" style="&st0;"> - <g style="&st4;"> - <path style="&st3;" d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2 - c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/> - <path style="&st2;" d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2 - c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/> - <path style="&st2;" d="M41.8,22.8l-5.1-4.2v-0.1L31,13.7v0l-6.5-5.5C24.2,8,24,8,23.8,8.2L6.2,22.9c-0.1,0.1-0.1,0.3,0.1,0.3h1.6H10h28.1h1.2h2.3c0.2,0,0.4-0.2,0.2-0.4z"/> - <path d="M35.8,16.8l0-5.1c0-0.2-0.1-0.4-0.3-0.4h-3.2c-0.2,0-0.3,0.1-0.3,0.3v2.2l3.9,2.9z"/> - <path d="M11.9,24.7V37c0,0.3,0.1,0.4,0.3,0.4h23.6c0.3,0,0.4-0.2,0.4-0.4V24.7H11.9z"/> - </g> - </g> - <g id="crop_x0020_marks" style="&st5;"> - <path style="&st1;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st1 "fill:none;stroke:none;"> + <!ENTITY st2 "fill:#000000;"> + <!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:6.3469;stroke-linejoin:round;"> + <!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;"> + <!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> +]> +<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> + <g id="Layer_x0020_3" style="&st0;"> + <g style="&st4;"> + <path style="&st3;" d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2 + c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/> + <path style="&st2;" d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2 + c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/> + <path style="&st2;" d="M41.8,22.8l-5.1-4.2v-0.1L31,13.7v0l-6.5-5.5C24.2,8,24,8,23.8,8.2L6.2,22.9c-0.1,0.1-0.1,0.3,0.1,0.3h1.6H10h28.1h1.2h2.3c0.2,0,0.4-0.2,0.2-0.4z"/> + <path d="M35.8,16.8l0-5.1c0-0.2-0.1-0.4-0.3-0.4h-3.2c-0.2,0-0.3,0.1-0.3,0.3v2.2l3.9,2.9z"/> + <path d="M11.9,24.7V37c0,0.3,0.1,0.4,0.3,0.4h23.6c0.3,0,0.4-0.2,0.4-0.4V24.7H11.9z"/> + </g> + </g> + <g id="crop_x0020_marks" style="&st5;"> + <path style="&st1;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/doc/images/important.svg b/doc/images/important.svg index dd84f3f..5b662c4 100644 --- a/doc/images/important.svg +++ b/doc/images/important.svg @@ -1,25 +1,25 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill:#FFFFFF;stroke:none;"> - <!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;"> - <!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;"> - <!ENTITY st3 "fill:none;stroke:none;"> - <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st5 "stroke:none;"> -]> -<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> - <g id="Layer_x0020_3" style="&st4;"> - <g> - <path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/> - <path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/> - <path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/> - <g> - <path style="&st5;" d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/> - </g> - </g> - </g> - <g id="crop_x0020_marks" style="&st4;"> - <path style="&st3;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill:#FFFFFF;stroke:none;"> + <!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;"> + <!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;"> + <!ENTITY st3 "fill:none;stroke:none;"> + <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st5 "stroke:none;"> +]> +<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> + <g id="Layer_x0020_3" style="&st4;"> + <g> + <path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/> + <path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/> + <path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/> + <g> + <path style="&st5;" d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/> + </g> + </g> + </g> + <g id="crop_x0020_marks" style="&st4;"> + <path style="&st3;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/doc/images/next.svg b/doc/images/next.svg index 75fa83e..64ec14b 100644 --- a/doc/images/next.svg +++ b/doc/images/next.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill:none;stroke:none;"> - <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;"> - <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st3 "stroke:none;"> -]> -<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> - <g id="Layer_x0020_3" style="&st2;"> - <g> - <path style="&st1;" d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/> - <path style="&st3;" d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/> - </g> - </g> - <g id="crop_x0020_marks" style="&st2;"> - <path style="&st0;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill:none;stroke:none;"> + <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;"> + <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st3 "stroke:none;"> +]> +<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> + <g id="Layer_x0020_3" style="&st2;"> + <g> + <path style="&st1;" d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/> + <path style="&st3;" d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/> + </g> + </g> + <g id="crop_x0020_marks" style="&st2;"> + <path style="&st0;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/doc/images/note.svg b/doc/images/note.svg index 648299d..aafc51e 100644 --- a/doc/images/note.svg +++ b/doc/images/note.svg @@ -1,33 +1,33 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill:none;stroke:#FFFFFF;stroke-width:12.1438;stroke-linejoin:round;"> - <!ENTITY st1 "fill:none;stroke-width:1.2429;"> - <!ENTITY st2 "fill:#FFFFFF;stroke:none;"> - <!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;"> - <!ENTITY st4 "fill:#FFFFFF;stroke-width:6.3824;stroke-linejoin:round;"> - <!ENTITY st5 "fill:none;stroke:none;"> - <!ENTITY st6 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st7 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;"> - <!ENTITY st8 "stroke:none;"> - <!ENTITY st9 "fill:none;stroke-width:4.9715;stroke-linejoin:round;"> -]> -<svg xmlns="http://www.w3.org/2000/svg" width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve"> - <g id="Layer_x0020_1" style="&st6;"> - <path style="&st0;" d="M35.7,19.8v18.9H11V8.8h13.9l10.8,11z"/> - <path style="&st3;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/> - <path style="&st7;" d="M35.7,8.8H11v29.9h24.7V8.8z"/> - <path style="&st4;" d="M35.7,8.8H11v29.9h24.7V8.8z"/> - <path style="&st2;" d="M35.7,8.8H11v29.9h24.7V8.8z"/> - </g> - <g id="Layer_x0020_4" style="&st6;"> - <path style="&st9;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/> - <path style="&st8;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/> - <path style="&st8;" d="M20.6,14.7l-2.5,2.5L17,13.4l3.6,1.3z"/> - <path style="&st1;" d="M19.6,22.2l3-0.3l2.4-2.4l0.4-2.8"/> - <path style="&st2;" d="M20.4,14.9L18.3,17l1.6,5.2l2.7-0.3l2.4-2.4l0.3-2.4l-5-2.2z"/> - </g> - <g id="crop" style="&st6;"> - <path style="&st5;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill:none;stroke:#FFFFFF;stroke-width:12.1438;stroke-linejoin:round;"> + <!ENTITY st1 "fill:none;stroke-width:1.2429;"> + <!ENTITY st2 "fill:#FFFFFF;stroke:none;"> + <!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;"> + <!ENTITY st4 "fill:#FFFFFF;stroke-width:6.3824;stroke-linejoin:round;"> + <!ENTITY st5 "fill:none;stroke:none;"> + <!ENTITY st6 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st7 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;"> + <!ENTITY st8 "stroke:none;"> + <!ENTITY st9 "fill:none;stroke-width:4.9715;stroke-linejoin:round;"> +]> +<svg xmlns="http://www.w3.org/2000/svg" width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve"> + <g id="Layer_x0020_1" style="&st6;"> + <path style="&st0;" d="M35.7,19.8v18.9H11V8.8h13.9l10.8,11z"/> + <path style="&st3;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/> + <path style="&st7;" d="M35.7,8.8H11v29.9h24.7V8.8z"/> + <path style="&st4;" d="M35.7,8.8H11v29.9h24.7V8.8z"/> + <path style="&st2;" d="M35.7,8.8H11v29.9h24.7V8.8z"/> + </g> + <g id="Layer_x0020_4" style="&st6;"> + <path style="&st9;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/> + <path style="&st8;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/> + <path style="&st8;" d="M20.6,14.7l-2.5,2.5L17,13.4l3.6,1.3z"/> + <path style="&st1;" d="M19.6,22.2l3-0.3l2.4-2.4l0.4-2.8"/> + <path style="&st2;" d="M20.4,14.9L18.3,17l1.6,5.2l2.7-0.3l2.4-2.4l0.3-2.4l-5-2.2z"/> + </g> + <g id="crop" style="&st6;"> + <path style="&st5;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/doc/images/prev.svg b/doc/images/prev.svg index 6d88ffd..7401287 100644 --- a/doc/images/prev.svg +++ b/doc/images/prev.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill:none;stroke:none;"> - <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;"> - <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st3 "stroke:none;"> -]> -<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> - <g id="Layer_x0020_3" style="&st2;"> - <g> - <path style="&st1;" d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/> - <path style="&st3;" d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/> - </g> - </g> - <g id="crop_x0020_marks" style="&st2;"> - <path style="&st0;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill:none;stroke:none;"> + <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;"> + <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st3 "stroke:none;"> +]> +<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> + <g id="Layer_x0020_3" style="&st2;"> + <g> + <path style="&st1;" d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/> + <path style="&st3;" d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/> + </g> + </g> + <g id="crop_x0020_marks" style="&st2;"> + <path style="&st0;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/doc/images/tip.svg b/doc/images/tip.svg index 4a64a15..6fdf54b 100644 --- a/doc/images/tip.svg +++ b/doc/images/tip.svg @@ -1,31 +1,31 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill:none;stroke:#000000;stroke-width:1.0944;"> - <!ENTITY st1 "fill:#FFFFFF;stroke:none;"> - <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#FFFFFF;stroke-width:5.6139;stroke-miterlimit:4;"> - <!ENTITY st3 "fill:none;stroke:none;"> - <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st5 "stroke:none;"> -]> -<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> - <g id="Layer_x0020_3" style="&st2;"> - <g> - <path d="M9.5,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.4-6.5,14.4-14.4c0-8-6.5-14.4-14.4-14.4c-8,0-14.4,6.5-14.4,14.4z M12.8,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2c0,6.2-5,11.2-11.2,11.2c-6.2,0-11.2-5-11.2-11.2z"/> - <path d="M28.1,37.9l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> - <path d="M28.1,34.8l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> - <path d="M28.1,31.6l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8s0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8s-0.9-1.5-1.8-1.4z"/> - <path d="M23.1,41.3v0.9c0,0.9,0.7,1.6,1.6,1.6c0.9,0,1.6-0.7,1.6-1.6v-0.9h-3.3z"/> - <path style="&st1;" d="M35.9,18.7c0,6.6-5.4,12-12,12c-6.6,0-12-5.4-12-12s5.4-12,12-12c6.6,0,12,5.4,12,12z"/> - <path style="&st5;" d="M9.6,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.4-6.5,14.4-14.4c0-8-6.5-14.4-14.4-14.4c-8,0-14.4,6.5-14.4,14.4z M12.9,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2c0,6.2-5,11.2-11.2,11.2c-6.2,0-11.2-5-11.2-11.2z"/> - <path style="&st5;" d="M28.2,37.9l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> - <path style="&st5;" d="M28.2,34.7l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> - <path style="&st5;" d="M28.2,31.6l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> - <path style="&st5;" d="M23.1,41.3v0.9c0,0.9,0.7,1.6,1.6,1.6s1.6-0.7,1.6-1.6v-0.9h-3.3z"/> - <path style="&st0;" d="M22.3,28.3l-3.5-10.7c0,0,6.6,3.9,10.5,0"/> - </g> - </g> - <g id="crop_x0020_marks" style="&st4;"> - <path style="&st3;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill:none;stroke:#000000;stroke-width:1.0944;"> + <!ENTITY st1 "fill:#FFFFFF;stroke:none;"> + <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#FFFFFF;stroke-width:5.6139;stroke-miterlimit:4;"> + <!ENTITY st3 "fill:none;stroke:none;"> + <!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st5 "stroke:none;"> +]> +<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> + <g id="Layer_x0020_3" style="&st2;"> + <g> + <path d="M9.5,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.4-6.5,14.4-14.4c0-8-6.5-14.4-14.4-14.4c-8,0-14.4,6.5-14.4,14.4z M12.8,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2c0,6.2-5,11.2-11.2,11.2c-6.2,0-11.2-5-11.2-11.2z"/> + <path d="M28.1,37.9l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> + <path d="M28.1,34.8l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> + <path d="M28.1,31.6l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8s0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8s-0.9-1.5-1.8-1.4z"/> + <path d="M23.1,41.3v0.9c0,0.9,0.7,1.6,1.6,1.6c0.9,0,1.6-0.7,1.6-1.6v-0.9h-3.3z"/> + <path style="&st1;" d="M35.9,18.7c0,6.6-5.4,12-12,12c-6.6,0-12-5.4-12-12s5.4-12,12-12c6.6,0,12,5.4,12,12z"/> + <path style="&st5;" d="M9.6,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.4-6.5,14.4-14.4c0-8-6.5-14.4-14.4-14.4c-8,0-14.4,6.5-14.4,14.4z M12.9,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2c0,6.2-5,11.2-11.2,11.2c-6.2,0-11.2-5-11.2-11.2z"/> + <path style="&st5;" d="M28.2,37.9l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> + <path style="&st5;" d="M28.2,34.7l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> + <path style="&st5;" d="M28.2,31.6l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/> + <path style="&st5;" d="M23.1,41.3v0.9c0,0.9,0.7,1.6,1.6,1.6s1.6-0.7,1.6-1.6v-0.9h-3.3z"/> + <path style="&st0;" d="M22.3,28.3l-3.5-10.7c0,0,6.6,3.9,10.5,0"/> + </g> + </g> + <g id="crop_x0020_marks" style="&st4;"> + <path style="&st3;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/doc/images/up.svg b/doc/images/up.svg index d31aa9c..9cc3a5f 100644 --- a/doc/images/up.svg +++ b/doc/images/up.svg @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill:none;stroke:none;"> - <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;"> - <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st3 "stroke:none;"> -]> -<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> - <g id="Layer_x0020_3" style="&st2;"> - <g> - <path style="&st1;" d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0.1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/> - <path style="&st3;" d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0.1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/> - </g> - </g> - <g id="crop_x0020_marks" style="&st2;"> - <path style="&st0;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill:none;stroke:none;"> + <!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;"> + <!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st3 "stroke:none;"> +]> +<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> + <g id="Layer_x0020_3" style="&st2;"> + <g> + <path style="&st1;" d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0.1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/> + <path style="&st3;" d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0.1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/> + </g> + </g> + <g id="crop_x0020_marks" style="&st2;"> + <path style="&st0;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/doc/images/warning.svg b/doc/images/warning.svg index fc8d748..1af2b05 100644 --- a/doc/images/warning.svg +++ b/doc/images/warning.svg @@ -1,23 +1,23 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> -<!DOCTYPE svg [ - <!ENTITY st0 "fill:#000000;stroke:#FFFFFF;stroke-width:7.9139;stroke-linejoin:round;"> - <!ENTITY st1 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;"> - <!ENTITY st2 "fill:none;stroke:none;"> - <!ENTITY st3 "fill:#000000;"> - <!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;"> - <!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> -]> -<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> - <g id="Layer_x0020_4" style="&st1;"> - <g style="&st4;"> - <path style="&st0;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/> - <path style="&st3;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/> - <path d="M11.7,17.7l18.7,18.7l5.9-5.9L17.6,11.7l-5.9,5.9z"/> - <path d="M11.7,30.5l5.9,5.9l18.7-18.7l-5.9-5.9L11.7,30.5z"/> - </g> - </g> - <g id="crop_x0020_marks" style="&st5;"> - <path style="&st2;" d="M48,48H0V0h48v48z"/> - </g> -</svg> +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In --> +<!DOCTYPE svg [ + <!ENTITY st0 "fill:#000000;stroke:#FFFFFF;stroke-width:7.9139;stroke-linejoin:round;"> + <!ENTITY st1 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;"> + <!ENTITY st2 "fill:none;stroke:none;"> + <!ENTITY st3 "fill:#000000;"> + <!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;"> + <!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> +]> +<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> + <g id="Layer_x0020_4" style="&st1;"> + <g style="&st4;"> + <path style="&st0;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/> + <path style="&st3;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/> + <path d="M11.7,17.7l18.7,18.7l5.9-5.9L17.6,11.7l-5.9,5.9z"/> + <path d="M11.7,30.5l5.9,5.9l18.7-18.7l-5.9-5.9L11.7,30.5z"/> + </g> + </g> + <g id="crop_x0020_marks" style="&st5;"> + <path style="&st2;" d="M48,48H0V0h48v48z"/> + </g> +</svg> diff --git a/elf_examples/asm.lst b/elf_examples/asm.lst index aa1fd64..359f4f1 100644 --- a/elf_examples/asm.lst +++ b/elf_examples/asm.lst @@ -1,23 +1,23 @@ - 1 ; nasm -f elf hello.asm # this will produce hello.o ELF object file - 2 ; ld -s -o hello hello.o # this will produce hello executable - 3 - 4 section .text - 5 global _start ;must be declared for linker (ld) - 6 - 7 _start: ;tell linker entry point - 8 - 9 00000000 BA0E000000 mov edx,len ;message length - 10 00000005 B9[00000000] mov ecx,msg ;message to write - 11 0000000A BB01000000 mov ebx,1 ;file descriptor (stdout) - 12 0000000F B804000000 mov eax,4 ;system call number (sys_write) - 13 00000014 CD80 int 0x80 ;call kernel - 14 - 15 00000016 B801000000 mov eax,1 ;system call number (sys_exit) - 16 0000001B CD80 int 0x80 ;call kernel - 17 - 18 section .data - 19 - 20 00000000 48656C6C6F2C20776F- msg db 'Hello, world!',0xa ;our dear string - 21 00000009 726C64210A - 22 len equ $ - msg ;length of our dear string - 23 + 1 ; nasm -f elf hello.asm # this will produce hello.o ELF object file + 2 ; ld -s -o hello hello.o # this will produce hello executable + 3 + 4 section .text + 5 global _start ;must be declared for linker (ld) + 6 + 7 _start: ;tell linker entry point + 8 + 9 00000000 BA0E000000 mov edx,len ;message length + 10 00000005 B9[00000000] mov ecx,msg ;message to write + 11 0000000A BB01000000 mov ebx,1 ;file descriptor (stdout) + 12 0000000F B804000000 mov eax,4 ;system call number (sys_write) + 13 00000014 CD80 int 0x80 ;call kernel + 14 + 15 00000016 B801000000 mov eax,1 ;system call number (sys_exit) + 16 0000001B CD80 int 0x80 ;call kernel + 17 + 18 section .data + 19 + 20 00000000 48656C6C6F2C20776F- msg db 'Hello, world!',0xa ;our dear string + 21 00000009 726C64210A + 22 len equ $ - msg ;length of our dear string + 23 diff --git a/elf_examples/asm.s b/elf_examples/asm.s index c9f5221..59e6e17 100644 --- a/elf_examples/asm.s +++ b/elf_examples/asm.s @@ -1,22 +1,22 @@ -; nasm -f elf hello.asm # this will produce hello.o ELF object file -; ld -s -o hello hello.o # this will produce hello executable - -section .text - global _start ;must be declared for linker (ld) - -_start: ;tell linker entry point - - mov edx,len ;message length - mov ecx,msg ;message to write - mov ebx,1 ;file descriptor (stdout) - mov eax,4 ;system call number (sys_write) - int 0x80 ;call kernel - - mov eax,1 ;system call number (sys_exit) - int 0x80 ;call kernel - -section .data - -msg db 'Hello, world!',0xa ;our dear string -len equ $ - msg ;length of our dear string - +; nasm -f elf hello.asm # this will produce hello.o ELF object file +; ld -s -o hello hello.o # this will produce hello executable + +section .text + global _start ;must be declared for linker (ld) + +_start: ;tell linker entry point + + mov edx,len ;message length + mov ecx,msg ;message to write + mov ebx,1 ;file descriptor (stdout) + mov eax,4 ;system call number (sys_write) + int 0x80 ;call kernel + + mov eax,1 ;system call number (sys_exit) + int 0x80 ;call kernel + +section .data + +msg db 'Hello, world!',0xa ;our dear string +len equ $ - msg ;length of our dear string + diff --git a/elf_examples/asm64.lst b/elf_examples/asm64.lst index aa1fd64..359f4f1 100644 --- a/elf_examples/asm64.lst +++ b/elf_examples/asm64.lst @@ -1,23 +1,23 @@ - 1 ; nasm -f elf hello.asm # this will produce hello.o ELF object file - 2 ; ld -s -o hello hello.o # this will produce hello executable - 3 - 4 section .text - 5 global _start ;must be declared for linker (ld) - 6 - 7 _start: ;tell linker entry point - 8 - 9 00000000 BA0E000000 mov edx,len ;message length - 10 00000005 B9[00000000] mov ecx,msg ;message to write - 11 0000000A BB01000000 mov ebx,1 ;file descriptor (stdout) - 12 0000000F B804000000 mov eax,4 ;system call number (sys_write) - 13 00000014 CD80 int 0x80 ;call kernel - 14 - 15 00000016 B801000000 mov eax,1 ;system call number (sys_exit) - 16 0000001B CD80 int 0x80 ;call kernel - 17 - 18 section .data - 19 - 20 00000000 48656C6C6F2C20776F- msg db 'Hello, world!',0xa ;our dear string - 21 00000009 726C64210A - 22 len equ $ - msg ;length of our dear string - 23 + 1 ; nasm -f elf hello.asm # this will produce hello.o ELF object file + 2 ; ld -s -o hello hello.o # this will produce hello executable + 3 + 4 section .text + 5 global _start ;must be declared for linker (ld) + 6 + 7 _start: ;tell linker entry point + 8 + 9 00000000 BA0E000000 mov edx,len ;message length + 10 00000005 B9[00000000] mov ecx,msg ;message to write + 11 0000000A BB01000000 mov ebx,1 ;file descriptor (stdout) + 12 0000000F B804000000 mov eax,4 ;system call number (sys_write) + 13 00000014 CD80 int 0x80 ;call kernel + 14 + 15 00000016 B801000000 mov eax,1 ;system call number (sys_exit) + 16 0000001B CD80 int 0x80 ;call kernel + 17 + 18 section .data + 19 + 20 00000000 48656C6C6F2C20776F- msg db 'Hello, world!',0xa ;our dear string + 21 00000009 726C64210A + 22 len equ $ - msg ;length of our dear string + 23 diff --git a/elf_examples/hello.c b/elf_examples/hello.c index 65f198c..97a1b81 100644 --- a/elf_examples/hello.c +++ b/elf_examples/hello.c @@ -1,8 +1,8 @@ -#include <stdio.h> - -int main() -{ - printf( "Hello\n" ); - - return 0; -} +#include <stdio.h> + +int main() +{ + printf( "Hello\n" ); + + return 0; +} diff --git a/elf_examples/hello_32.txt b/elf_examples/hello_32.txt index bf89806..ec96c84 100644 --- a/elf_examples/hello_32.txt +++ b/elf_examples/hello_32.txt @@ -1,211 +1,211 @@ -ELF Header: - Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 - Class: ELF32 - Data: 2's complement, little endian - Version: 1 (current) - OS/ABI: UNIX - System V - ABI Version: 0 - Type: EXEC (Executable file) - Machine: Intel 80386 - Version: 0x1 - Entry point address: 0x80482b0 - Start of program headers: 52 (bytes into file) - Start of section headers: 1912 (bytes into file) - Flags: 0x0 - Size of this header: 52 (bytes) - Size of program headers: 32 (bytes) - Number of program headers: 7 - Size of section headers: 40 (bytes) - Number of section headers: 28 - Section header string table index: 25 - -Section Headers: - [Nr] Name Type Addr Off Size ES Flg Lk Inf Al - [ 0] NULL 00000000 000000 000000 00 0 0 0 - [ 1] .interp PROGBITS 08048114 000114 000013 00 A 0 0 1 - [ 2] .note.ABI-tag NOTE 08048128 000128 000020 00 A 0 0 4 - [ 3] .gnu.hash GNU_HASH 08048148 000148 000020 04 A 4 0 4 - [ 4] .dynsym DYNSYM 08048168 000168 000050 10 A 5 1 4 - [ 5] .dynstr STRTAB 080481b8 0001b8 00004a 00 A 0 0 1 - [ 6] .gnu.version VERSYM 08048202 000202 00000a 02 A 4 0 2 - [ 7] .gnu.version_r VERNEED 0804820c 00020c 000020 00 A 5 1 4 - [ 8] .rel.dyn REL 0804822c 00022c 000008 08 A 4 0 4 - [ 9] .rel.plt REL 08048234 000234 000018 08 A 4 11 4 - [10] .init PROGBITS 0804824c 00024c 000017 00 AX 0 0 4 - [11] .plt PROGBITS 08048264 000264 000040 04 AX 0 0 4 - [12] .text PROGBITS 080482b0 0002b0 0001a8 00 AX 0 0 16 - [13] .fini PROGBITS 08048458 000458 00001c 00 AX 0 0 4 - [14] .rodata PROGBITS 08048474 000474 000012 00 A 0 0 4 - [15] .eh_frame PROGBITS 08048488 000488 000004 00 A 0 0 4 - [16] .ctors PROGBITS 0804948c 00048c 000008 00 WA 0 0 4 - [17] .dtors PROGBITS 08049494 000494 000008 00 WA 0 0 4 - [18] .jcr PROGBITS 0804949c 00049c 000004 00 WA 0 0 4 - [19] .dynamic DYNAMIC 080494a0 0004a0 0000c8 08 WA 5 0 4 - [20] .got PROGBITS 08049568 000568 000004 04 WA 0 0 4 - [21] .got.plt PROGBITS 0804956c 00056c 000018 04 WA 0 0 4 - [22] .data PROGBITS 08049584 000584 000004 00 WA 0 0 4 - [23] .bss NOBITS 08049588 000588 000008 00 WA 0 0 4 - [24] .comment PROGBITS 00000000 000588 000114 00 0 0 1 - [25] .shstrtab STRTAB 00000000 00069c 0000db 00 0 0 1 - [26] .symtab SYMTAB 00000000 000bd8 000440 10 27 48 4 - [27] .strtab STRTAB 00000000 001018 000259 00 0 0 1 -Key to Flags: - W (write), A (alloc), X (execute), M (merge), S (strings) - I (info), L (link order), G (group), x (unknown) - O (extra OS processing required) o (OS specific), p (processor specific) - -There are no section groups in this file. - -Program Headers: - Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align - PHDR 0x000034 0x08048034 0x08048034 0x000e0 0x000e0 R E 0x4 - INTERP 0x000114 0x08048114 0x08048114 0x00013 0x00013 R 0x1 - [Requesting program interpreter: /lib/ld-linux.so.2] - LOAD 0x000000 0x08048000 0x08048000 0x0048c 0x0048c R E 0x1000 - LOAD 0x00048c 0x0804948c 0x0804948c 0x000fc 0x00104 RW 0x1000 - DYNAMIC 0x0004a0 0x080494a0 0x080494a0 0x000c8 0x000c8 RW 0x4 - NOTE 0x000128 0x08048128 0x08048128 0x00020 0x00020 R 0x4 - GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4 - - Section to Segment mapping: - Segment Sections... - 00 - 01 .interp - 02 .interp .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame - 03 .ctors .dtors .jcr .dynamic .got .got.plt .data .bss - 04 .dynamic - 05 .note.ABI-tag - 06 - -Dynamic section at offset 0x4a0 contains 20 entries: - Tag Type Name/Value - 0x00000001 (NEEDED) Shared library: [libc.so.6] - 0x0000000c (INIT) 0x804824c - 0x0000000d (FINI) 0x8048458 - 0x6ffffef5 (GNU_HASH) 0x8048148 - 0x00000005 (STRTAB) 0x80481b8 - 0x00000006 (SYMTAB) 0x8048168 - 0x0000000a (STRSZ) 74 (bytes) - 0x0000000b (SYMENT) 16 (bytes) - 0x00000015 (DEBUG) 0x0 - 0x00000003 (PLTGOT) 0x804956c - 0x00000002 (PLTRELSZ) 24 (bytes) - 0x00000014 (PLTREL) REL - 0x00000017 (JMPREL) 0x8048234 - 0x00000011 (REL) 0x804822c - 0x00000012 (RELSZ) 8 (bytes) - 0x00000013 (RELENT) 8 (bytes) - 0x6ffffffe (VERNEED) 0x804820c - 0x6fffffff (VERNEEDNUM) 1 - 0x6ffffff0 (VERSYM) 0x8048202 - 0x00000000 (NULL) 0x0 - -Relocation section '.rel.dyn' at offset 0x22c contains 1 entries: - Offset Info Type Sym.Value Sym. Name -08049568 00000106 R_386_GLOB_DAT 00000000 __gmon_start__ - -Relocation section '.rel.plt' at offset 0x234 contains 3 entries: - Offset Info Type Sym.Value Sym. Name -08049578 00000107 R_386_JUMP_SLOT 00000000 __gmon_start__ -0804957c 00000207 R_386_JUMP_SLOT 00000000 __libc_start_main -08049580 00000307 R_386_JUMP_SLOT 00000000 puts - -There are no unwind sections in this file. - -Symbol table '.dynsym' contains 5 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 00000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 2: 00000000 415 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.0 (2) - 3: 00000000 399 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.0 (2) - 4: 08048478 4 OBJECT GLOBAL DEFAULT 14 _IO_stdin_used - -Symbol table '.symtab' contains 68 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 00000000 0 NOTYPE LOCAL DEFAULT UND - 1: 08048114 0 SECTION LOCAL DEFAULT 1 - 2: 08048128 0 SECTION LOCAL DEFAULT 2 - 3: 08048148 0 SECTION LOCAL DEFAULT 3 - 4: 08048168 0 SECTION LOCAL DEFAULT 4 - 5: 080481b8 0 SECTION LOCAL DEFAULT 5 - 6: 08048202 0 SECTION LOCAL DEFAULT 6 - 7: 0804820c 0 SECTION LOCAL DEFAULT 7 - 8: 0804822c 0 SECTION LOCAL DEFAULT 8 - 9: 08048234 0 SECTION LOCAL DEFAULT 9 - 10: 0804824c 0 SECTION LOCAL DEFAULT 10 - 11: 08048264 0 SECTION LOCAL DEFAULT 11 - 12: 080482b0 0 SECTION LOCAL DEFAULT 12 - 13: 08048458 0 SECTION LOCAL DEFAULT 13 - 14: 08048474 0 SECTION LOCAL DEFAULT 14 - 15: 08048488 0 SECTION LOCAL DEFAULT 15 - 16: 0804948c 0 SECTION LOCAL DEFAULT 16 - 17: 08049494 0 SECTION LOCAL DEFAULT 17 - 18: 0804949c 0 SECTION LOCAL DEFAULT 18 - 19: 080494a0 0 SECTION LOCAL DEFAULT 19 - 20: 08049568 0 SECTION LOCAL DEFAULT 20 - 21: 0804956c 0 SECTION LOCAL DEFAULT 21 - 22: 08049584 0 SECTION LOCAL DEFAULT 22 - 23: 08049588 0 SECTION LOCAL DEFAULT 23 - 24: 00000000 0 SECTION LOCAL DEFAULT 24 - 25: 080482d4 0 FUNC LOCAL DEFAULT 12 call_gmon_start - 26: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 27: 0804948c 0 OBJECT LOCAL DEFAULT 16 __CTOR_LIST__ - 28: 08049494 0 OBJECT LOCAL DEFAULT 17 __DTOR_LIST__ - 29: 0804949c 0 OBJECT LOCAL DEFAULT 18 __JCR_LIST__ - 30: 08049588 4 OBJECT LOCAL DEFAULT 23 dtor_idx.5805 - 31: 0804958c 1 OBJECT LOCAL DEFAULT 23 completed.5803 - 32: 08048300 0 FUNC LOCAL DEFAULT 12 __do_global_dtors_aux - 33: 08048360 0 FUNC LOCAL DEFAULT 12 frame_dummy - 34: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 35: 08049490 0 OBJECT LOCAL DEFAULT 16 __CTOR_END__ - 36: 08048488 0 OBJECT LOCAL DEFAULT 15 __FRAME_END__ - 37: 0804949c 0 OBJECT LOCAL DEFAULT 18 __JCR_END__ - 38: 08048430 0 FUNC LOCAL DEFAULT 12 __do_global_ctors_aux - 39: 00000000 0 FILE LOCAL DEFAULT ABS hello.c - 40: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __preinit_array_start - 41: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __fini_array_end - 42: 0804956c 0 OBJECT LOCAL HIDDEN 21 _GLOBAL_OFFSET_TABLE_ - 43: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __preinit_array_end - 44: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __fini_array_start - 45: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __init_array_end - 46: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __init_array_start - 47: 080494a0 0 OBJECT LOCAL HIDDEN 19 _DYNAMIC - 48: 08049584 0 NOTYPE WEAK DEFAULT 22 data_start - 49: 080483b0 5 FUNC GLOBAL DEFAULT 12 __libc_csu_fini - 50: 080482b0 0 FUNC GLOBAL DEFAULT 12 _start - 51: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 52: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses - 53: 08048474 4 OBJECT GLOBAL DEFAULT 14 _fp_hw - 54: 08048458 0 FUNC GLOBAL DEFAULT 13 _fini - 55: 00000000 415 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_ - 56: 08048478 4 OBJECT GLOBAL DEFAULT 14 _IO_stdin_used - 57: 08049584 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 58: 0804847c 0 OBJECT GLOBAL HIDDEN 14 __dso_handle - 59: 08049498 0 OBJECT GLOBAL HIDDEN 17 __DTOR_END__ - 60: 080483c0 105 FUNC GLOBAL DEFAULT 12 __libc_csu_init - 61: 08049588 0 NOTYPE GLOBAL DEFAULT ABS __bss_start - 62: 08049590 0 NOTYPE GLOBAL DEFAULT ABS _end - 63: 00000000 399 FUNC GLOBAL DEFAULT UND puts@@GLIBC_2.0 - 64: 08049588 0 NOTYPE GLOBAL DEFAULT ABS _edata - 65: 08048429 0 FUNC GLOBAL HIDDEN 12 __i686.get_pc_thunk.bx - 66: 08048384 43 FUNC GLOBAL DEFAULT 12 main - 67: 0804824c 0 FUNC GLOBAL DEFAULT 10 _init - -Histogram for `.gnu.hash' bucket list length (total of 2 buckets): - Length Number % of total Coverage - 0 1 ( 50.0%) - 1 1 ( 50.0%) 100.0% - -Version symbols section '.gnu.version' contains 5 entries: - Addr: 0000000008048202 Offset: 0x000202 Link: 4 (.dynsym) - 000: 0 (*local*) 0 (*local*) 2 (GLIBC_2.0) 2 (GLIBC_2.0) - 004: 1 (*global*) - -Version needs section '.gnu.version_r' contains 1 entries: - Addr: 0x000000000804820c Offset: 0x00020c Link to section: 5 (.dynstr) - 000000: Version: 1 File: libc.so.6 Cnt: 1 - 0x0010: Name: GLIBC_2.0 Flags: none Version: 2 - -Notes at offset 0x00000128 with length 0x00000020: - Owner Data size Description - GNU 0x00000010 NT_VERSION (version) +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: Intel 80386 + Version: 0x1 + Entry point address: 0x80482b0 + Start of program headers: 52 (bytes into file) + Start of section headers: 1912 (bytes into file) + Flags: 0x0 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 7 + Size of section headers: 40 (bytes) + Number of section headers: 28 + Section header string table index: 25 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .interp PROGBITS 08048114 000114 000013 00 A 0 0 1 + [ 2] .note.ABI-tag NOTE 08048128 000128 000020 00 A 0 0 4 + [ 3] .gnu.hash GNU_HASH 08048148 000148 000020 04 A 4 0 4 + [ 4] .dynsym DYNSYM 08048168 000168 000050 10 A 5 1 4 + [ 5] .dynstr STRTAB 080481b8 0001b8 00004a 00 A 0 0 1 + [ 6] .gnu.version VERSYM 08048202 000202 00000a 02 A 4 0 2 + [ 7] .gnu.version_r VERNEED 0804820c 00020c 000020 00 A 5 1 4 + [ 8] .rel.dyn REL 0804822c 00022c 000008 08 A 4 0 4 + [ 9] .rel.plt REL 08048234 000234 000018 08 A 4 11 4 + [10] .init PROGBITS 0804824c 00024c 000017 00 AX 0 0 4 + [11] .plt PROGBITS 08048264 000264 000040 04 AX 0 0 4 + [12] .text PROGBITS 080482b0 0002b0 0001a8 00 AX 0 0 16 + [13] .fini PROGBITS 08048458 000458 00001c 00 AX 0 0 4 + [14] .rodata PROGBITS 08048474 000474 000012 00 A 0 0 4 + [15] .eh_frame PROGBITS 08048488 000488 000004 00 A 0 0 4 + [16] .ctors PROGBITS 0804948c 00048c 000008 00 WA 0 0 4 + [17] .dtors PROGBITS 08049494 000494 000008 00 WA 0 0 4 + [18] .jcr PROGBITS 0804949c 00049c 000004 00 WA 0 0 4 + [19] .dynamic DYNAMIC 080494a0 0004a0 0000c8 08 WA 5 0 4 + [20] .got PROGBITS 08049568 000568 000004 04 WA 0 0 4 + [21] .got.plt PROGBITS 0804956c 00056c 000018 04 WA 0 0 4 + [22] .data PROGBITS 08049584 000584 000004 00 WA 0 0 4 + [23] .bss NOBITS 08049588 000588 000008 00 WA 0 0 4 + [24] .comment PROGBITS 00000000 000588 000114 00 0 0 1 + [25] .shstrtab STRTAB 00000000 00069c 0000db 00 0 0 1 + [26] .symtab SYMTAB 00000000 000bd8 000440 10 27 48 4 + [27] .strtab STRTAB 00000000 001018 000259 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings) + I (info), L (link order), G (group), x (unknown) + O (extra OS processing required) o (OS specific), p (processor specific) + +There are no section groups in this file. + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + PHDR 0x000034 0x08048034 0x08048034 0x000e0 0x000e0 R E 0x4 + INTERP 0x000114 0x08048114 0x08048114 0x00013 0x00013 R 0x1 + [Requesting program interpreter: /lib/ld-linux.so.2] + LOAD 0x000000 0x08048000 0x08048000 0x0048c 0x0048c R E 0x1000 + LOAD 0x00048c 0x0804948c 0x0804948c 0x000fc 0x00104 RW 0x1000 + DYNAMIC 0x0004a0 0x080494a0 0x080494a0 0x000c8 0x000c8 RW 0x4 + NOTE 0x000128 0x08048128 0x08048128 0x00020 0x00020 R 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4 + + Section to Segment mapping: + Segment Sections... + 00 + 01 .interp + 02 .interp .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame + 03 .ctors .dtors .jcr .dynamic .got .got.plt .data .bss + 04 .dynamic + 05 .note.ABI-tag + 06 + +Dynamic section at offset 0x4a0 contains 20 entries: + Tag Type Name/Value + 0x00000001 (NEEDED) Shared library: [libc.so.6] + 0x0000000c (INIT) 0x804824c + 0x0000000d (FINI) 0x8048458 + 0x6ffffef5 (GNU_HASH) 0x8048148 + 0x00000005 (STRTAB) 0x80481b8 + 0x00000006 (SYMTAB) 0x8048168 + 0x0000000a (STRSZ) 74 (bytes) + 0x0000000b (SYMENT) 16 (bytes) + 0x00000015 (DEBUG) 0x0 + 0x00000003 (PLTGOT) 0x804956c + 0x00000002 (PLTRELSZ) 24 (bytes) + 0x00000014 (PLTREL) REL + 0x00000017 (JMPREL) 0x8048234 + 0x00000011 (REL) 0x804822c + 0x00000012 (RELSZ) 8 (bytes) + 0x00000013 (RELENT) 8 (bytes) + 0x6ffffffe (VERNEED) 0x804820c + 0x6fffffff (VERNEEDNUM) 1 + 0x6ffffff0 (VERSYM) 0x8048202 + 0x00000000 (NULL) 0x0 + +Relocation section '.rel.dyn' at offset 0x22c contains 1 entries: + Offset Info Type Sym.Value Sym. Name +08049568 00000106 R_386_GLOB_DAT 00000000 __gmon_start__ + +Relocation section '.rel.plt' at offset 0x234 contains 3 entries: + Offset Info Type Sym.Value Sym. Name +08049578 00000107 R_386_JUMP_SLOT 00000000 __gmon_start__ +0804957c 00000207 R_386_JUMP_SLOT 00000000 __libc_start_main +08049580 00000307 R_386_JUMP_SLOT 00000000 puts + +There are no unwind sections in this file. + +Symbol table '.dynsym' contains 5 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 2: 00000000 415 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.0 (2) + 3: 00000000 399 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.0 (2) + 4: 08048478 4 OBJECT GLOBAL DEFAULT 14 _IO_stdin_used + +Symbol table '.symtab' contains 68 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 08048114 0 SECTION LOCAL DEFAULT 1 + 2: 08048128 0 SECTION LOCAL DEFAULT 2 + 3: 08048148 0 SECTION LOCAL DEFAULT 3 + 4: 08048168 0 SECTION LOCAL DEFAULT 4 + 5: 080481b8 0 SECTION LOCAL DEFAULT 5 + 6: 08048202 0 SECTION LOCAL DEFAULT 6 + 7: 0804820c 0 SECTION LOCAL DEFAULT 7 + 8: 0804822c 0 SECTION LOCAL DEFAULT 8 + 9: 08048234 0 SECTION LOCAL DEFAULT 9 + 10: 0804824c 0 SECTION LOCAL DEFAULT 10 + 11: 08048264 0 SECTION LOCAL DEFAULT 11 + 12: 080482b0 0 SECTION LOCAL DEFAULT 12 + 13: 08048458 0 SECTION LOCAL DEFAULT 13 + 14: 08048474 0 SECTION LOCAL DEFAULT 14 + 15: 08048488 0 SECTION LOCAL DEFAULT 15 + 16: 0804948c 0 SECTION LOCAL DEFAULT 16 + 17: 08049494 0 SECTION LOCAL DEFAULT 17 + 18: 0804949c 0 SECTION LOCAL DEFAULT 18 + 19: 080494a0 0 SECTION LOCAL DEFAULT 19 + 20: 08049568 0 SECTION LOCAL DEFAULT 20 + 21: 0804956c 0 SECTION LOCAL DEFAULT 21 + 22: 08049584 0 SECTION LOCAL DEFAULT 22 + 23: 08049588 0 SECTION LOCAL DEFAULT 23 + 24: 00000000 0 SECTION LOCAL DEFAULT 24 + 25: 080482d4 0 FUNC LOCAL DEFAULT 12 call_gmon_start + 26: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 27: 0804948c 0 OBJECT LOCAL DEFAULT 16 __CTOR_LIST__ + 28: 08049494 0 OBJECT LOCAL DEFAULT 17 __DTOR_LIST__ + 29: 0804949c 0 OBJECT LOCAL DEFAULT 18 __JCR_LIST__ + 30: 08049588 4 OBJECT LOCAL DEFAULT 23 dtor_idx.5805 + 31: 0804958c 1 OBJECT LOCAL DEFAULT 23 completed.5803 + 32: 08048300 0 FUNC LOCAL DEFAULT 12 __do_global_dtors_aux + 33: 08048360 0 FUNC LOCAL DEFAULT 12 frame_dummy + 34: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 35: 08049490 0 OBJECT LOCAL DEFAULT 16 __CTOR_END__ + 36: 08048488 0 OBJECT LOCAL DEFAULT 15 __FRAME_END__ + 37: 0804949c 0 OBJECT LOCAL DEFAULT 18 __JCR_END__ + 38: 08048430 0 FUNC LOCAL DEFAULT 12 __do_global_ctors_aux + 39: 00000000 0 FILE LOCAL DEFAULT ABS hello.c + 40: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __preinit_array_start + 41: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __fini_array_end + 42: 0804956c 0 OBJECT LOCAL HIDDEN 21 _GLOBAL_OFFSET_TABLE_ + 43: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __preinit_array_end + 44: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __fini_array_start + 45: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __init_array_end + 46: 0804948c 0 NOTYPE LOCAL HIDDEN 16 __init_array_start + 47: 080494a0 0 OBJECT LOCAL HIDDEN 19 _DYNAMIC + 48: 08049584 0 NOTYPE WEAK DEFAULT 22 data_start + 49: 080483b0 5 FUNC GLOBAL DEFAULT 12 __libc_csu_fini + 50: 080482b0 0 FUNC GLOBAL DEFAULT 12 _start + 51: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 52: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses + 53: 08048474 4 OBJECT GLOBAL DEFAULT 14 _fp_hw + 54: 08048458 0 FUNC GLOBAL DEFAULT 13 _fini + 55: 00000000 415 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_ + 56: 08048478 4 OBJECT GLOBAL DEFAULT 14 _IO_stdin_used + 57: 08049584 0 NOTYPE GLOBAL DEFAULT 22 __data_start + 58: 0804847c 0 OBJECT GLOBAL HIDDEN 14 __dso_handle + 59: 08049498 0 OBJECT GLOBAL HIDDEN 17 __DTOR_END__ + 60: 080483c0 105 FUNC GLOBAL DEFAULT 12 __libc_csu_init + 61: 08049588 0 NOTYPE GLOBAL DEFAULT ABS __bss_start + 62: 08049590 0 NOTYPE GLOBAL DEFAULT ABS _end + 63: 00000000 399 FUNC GLOBAL DEFAULT UND puts@@GLIBC_2.0 + 64: 08049588 0 NOTYPE GLOBAL DEFAULT ABS _edata + 65: 08048429 0 FUNC GLOBAL HIDDEN 12 __i686.get_pc_thunk.bx + 66: 08048384 43 FUNC GLOBAL DEFAULT 12 main + 67: 0804824c 0 FUNC GLOBAL DEFAULT 10 _init + +Histogram for `.gnu.hash' bucket list length (total of 2 buckets): + Length Number % of total Coverage + 0 1 ( 50.0%) + 1 1 ( 50.0%) 100.0% + +Version symbols section '.gnu.version' contains 5 entries: + Addr: 0000000008048202 Offset: 0x000202 Link: 4 (.dynsym) + 000: 0 (*local*) 0 (*local*) 2 (GLIBC_2.0) 2 (GLIBC_2.0) + 004: 1 (*global*) + +Version needs section '.gnu.version_r' contains 1 entries: + Addr: 0x000000000804820c Offset: 0x00020c Link to section: 5 (.dynstr) + 000000: Version: 1 File: libc.so.6 Cnt: 1 + 0x0010: Name: GLIBC_2.0 Flags: none Version: 2 + +Notes at offset 0x00000128 with length 0x00000020: + Owner Data size Description + GNU 0x00000010 NT_VERSION (version) diff --git a/elf_examples/hello_32_o.txt b/elf_examples/hello_32_o.txt index ccf7efb..b21ebaf 100644 --- a/elf_examples/hello_32_o.txt +++ b/elf_examples/hello_32_o.txt @@ -1,64 +1,64 @@ -ELF Header: - Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 - Class: ELF32 - Data: 2's complement, little endian - Version: 1 (current) - OS/ABI: UNIX - System V - ABI Version: 0 - Type: REL (Relocatable file) - Machine: Intel 80386 - Version: 0x1 - Entry point address: 0x0 - Start of program headers: 0 (bytes into file) - Start of section headers: 232 (bytes into file) - Flags: 0x0 - Size of this header: 52 (bytes) - Size of program headers: 0 (bytes) - Number of program headers: 0 - Size of section headers: 40 (bytes) - Number of section headers: 11 - Section header string table index: 8 - -Section Headers: - [Nr] Name Type Addr Off Size ES Flg Lk Inf Al - [ 0] NULL 00000000 000000 000000 00 0 0 0 - [ 1] .text PROGBITS 00000000 000034 00002b 00 AX 0 0 4 - [ 2] .rel.text REL 00000000 000354 000010 08 9 1 4 - [ 3] .data PROGBITS 00000000 000060 000000 00 WA 0 0 4 - [ 4] .bss NOBITS 00000000 000060 000000 00 WA 0 0 4 - [ 5] .rodata PROGBITS 00000000 000060 000006 00 A 0 0 1 - [ 6] .comment PROGBITS 00000000 000066 00002e 00 0 0 1 - [ 7] .note.GNU-stack PROGBITS 00000000 000094 000000 00 0 0 1 - [ 8] .shstrtab STRTAB 00000000 000094 000051 00 0 0 1 - [ 9] .symtab SYMTAB 00000000 0002a0 0000a0 10 10 8 4 - [10] .strtab STRTAB 00000000 000340 000013 00 0 0 1 -Key to Flags: - W (write), A (alloc), X (execute), M (merge), S (strings) - I (info), L (link order), G (group), x (unknown) - O (extra OS processing required) o (OS specific), p (processor specific) - -There are no section groups in this file. - -There are no program headers in this file. - -Relocation section '.rel.text' at offset 0x354 contains 2 entries: - Offset Info Type Sym.Value Sym. Name -00000014 00000501 R_386_32 00000000 .rodata -00000019 00000902 R_386_PC32 00000000 puts - -There are no unwind sections in this file. - -Symbol table '.symtab' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 00000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000 0 FILE LOCAL DEFAULT ABS hello.c - 2: 00000000 0 SECTION LOCAL DEFAULT 1 - 3: 00000000 0 SECTION LOCAL DEFAULT 3 - 4: 00000000 0 SECTION LOCAL DEFAULT 4 - 5: 00000000 0 SECTION LOCAL DEFAULT 5 - 6: 00000000 0 SECTION LOCAL DEFAULT 7 - 7: 00000000 0 SECTION LOCAL DEFAULT 6 - 8: 00000000 43 FUNC GLOBAL DEFAULT 1 main - 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND puts - -No version information found in this file. +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: REL (Relocatable file) + Machine: Intel 80386 + Version: 0x1 + Entry point address: 0x0 + Start of program headers: 0 (bytes into file) + Start of section headers: 232 (bytes into file) + Flags: 0x0 + Size of this header: 52 (bytes) + Size of program headers: 0 (bytes) + Number of program headers: 0 + Size of section headers: 40 (bytes) + Number of section headers: 11 + Section header string table index: 8 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 000034 00002b 00 AX 0 0 4 + [ 2] .rel.text REL 00000000 000354 000010 08 9 1 4 + [ 3] .data PROGBITS 00000000 000060 000000 00 WA 0 0 4 + [ 4] .bss NOBITS 00000000 000060 000000 00 WA 0 0 4 + [ 5] .rodata PROGBITS 00000000 000060 000006 00 A 0 0 1 + [ 6] .comment PROGBITS 00000000 000066 00002e 00 0 0 1 + [ 7] .note.GNU-stack PROGBITS 00000000 000094 000000 00 0 0 1 + [ 8] .shstrtab STRTAB 00000000 000094 000051 00 0 0 1 + [ 9] .symtab SYMTAB 00000000 0002a0 0000a0 10 10 8 4 + [10] .strtab STRTAB 00000000 000340 000013 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings) + I (info), L (link order), G (group), x (unknown) + O (extra OS processing required) o (OS specific), p (processor specific) + +There are no section groups in this file. + +There are no program headers in this file. + +Relocation section '.rel.text' at offset 0x354 contains 2 entries: + Offset Info Type Sym.Value Sym. Name +00000014 00000501 R_386_32 00000000 .rodata +00000019 00000902 R_386_PC32 00000000 puts + +There are no unwind sections in this file. + +Symbol table '.symtab' contains 10 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 00000000 0 FILE LOCAL DEFAULT ABS hello.c + 2: 00000000 0 SECTION LOCAL DEFAULT 1 + 3: 00000000 0 SECTION LOCAL DEFAULT 3 + 4: 00000000 0 SECTION LOCAL DEFAULT 4 + 5: 00000000 0 SECTION LOCAL DEFAULT 5 + 6: 00000000 0 SECTION LOCAL DEFAULT 7 + 7: 00000000 0 SECTION LOCAL DEFAULT 6 + 8: 00000000 43 FUNC GLOBAL DEFAULT 1 main + 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND puts + +No version information found in this file. diff --git a/elf_examples/hello_64.txt b/elf_examples/hello_64.txt index 6597d9c..4856d22 100644 --- a/elf_examples/hello_64.txt +++ b/elf_examples/hello_64.txt @@ -1,244 +1,244 @@ -ELF Header: - Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 - Class: ELF64 - Data: 2's complement, little endian - Version: 1 (current) - OS/ABI: UNIX - System V - ABI Version: 0 - Type: EXEC (Executable file) - Machine: Advanced Micro Devices X86-64 - Version: 0x1 - Entry point address: 0x4003c0 - Start of program headers: 64 (bytes into file) - Start of section headers: 2656 (bytes into file) - Flags: 0x0 - Size of this header: 64 (bytes) - Size of program headers: 56 (bytes) - Number of program headers: 8 - Size of section headers: 64 (bytes) - Number of section headers: 29 - Section header string table index: 26 - -Section Headers: - [Nr] Name Type Address Offset - Size EntSize Flags Link Info Align - [ 0] NULL 0000000000000000 00000000 - 0000000000000000 0000000000000000 0 0 0 - [ 1] .interp PROGBITS 0000000000400200 00000200 - 000000000000001c 0000000000000000 A 0 0 1 - [ 2] .note.ABI-tag NOTE 000000000040021c 0000021c - 0000000000000020 0000000000000000 A 0 0 4 - [ 3] .gnu.hash GNU_HASH 0000000000400240 00000240 - 000000000000001c 0000000000000000 A 4 0 8 - [ 4] .dynsym DYNSYM 0000000000400260 00000260 - 0000000000000060 0000000000000018 A 5 1 8 - [ 5] .dynstr STRTAB 00000000004002c0 000002c0 - 000000000000003d 0000000000000000 A 0 0 1 - [ 6] .gnu.version VERSYM 00000000004002fe 000002fe - 0000000000000008 0000000000000002 A 4 0 2 - [ 7] .gnu.version_r VERNEED 0000000000400308 00000308 - 0000000000000020 0000000000000000 A 5 1 8 - [ 8] .rela.dyn RELA 0000000000400328 00000328 - 0000000000000018 0000000000000018 A 4 0 8 - [ 9] .rela.plt RELA 0000000000400340 00000340 - 0000000000000030 0000000000000018 A 4 11 8 - [10] .init PROGBITS 0000000000400370 00000370 - 0000000000000018 0000000000000000 AX 0 0 4 - [11] .plt PROGBITS 0000000000400388 00000388 - 0000000000000030 0000000000000010 AX 0 0 4 - [12] .text PROGBITS 00000000004003c0 000003c0 - 00000000000001c8 0000000000000000 AX 0 0 16 - [13] .fini PROGBITS 0000000000400588 00000588 - 000000000000000e 0000000000000000 AX 0 0 4 - [14] .rodata PROGBITS 0000000000400598 00000598 - 0000000000000016 0000000000000000 A 0 0 8 - [15] .eh_frame_hdr PROGBITS 00000000004005b0 000005b0 - 0000000000000024 0000000000000000 A 0 0 4 - [16] .eh_frame PROGBITS 00000000004005d8 000005d8 - 0000000000000094 0000000000000000 A 0 0 8 - [17] .ctors PROGBITS 0000000000600670 00000670 - 0000000000000010 0000000000000000 WA 0 0 8 - [18] .dtors PROGBITS 0000000000600680 00000680 - 0000000000000010 0000000000000000 WA 0 0 8 - [19] .jcr PROGBITS 0000000000600690 00000690 - 0000000000000008 0000000000000000 WA 0 0 8 - [20] .dynamic DYNAMIC 0000000000600698 00000698 - 0000000000000190 0000000000000010 WA 5 0 8 - [21] .got PROGBITS 0000000000600828 00000828 - 0000000000000008 0000000000000008 WA 0 0 8 - [22] .got.plt PROGBITS 0000000000600830 00000830 - 0000000000000028 0000000000000008 WA 0 0 8 - [23] .data PROGBITS 0000000000600858 00000858 - 0000000000000004 0000000000000000 WA 0 0 4 - [24] .bss NOBITS 0000000000600860 0000085c - 0000000000000010 0000000000000000 WA 0 0 8 - [25] .comment PROGBITS 0000000000000000 0000085c - 0000000000000114 0000000000000000 0 0 1 - [26] .shstrtab STRTAB 0000000000000000 00000970 - 00000000000000eb 0000000000000000 0 0 1 - [27] .symtab SYMTAB 0000000000000000 000011a0 - 0000000000000648 0000000000000018 28 49 8 - [28] .strtab STRTAB 0000000000000000 000017e8 - 000000000000023f 0000000000000000 0 0 1 -Key to Flags: - W (write), A (alloc), X (execute), M (merge), S (strings) - I (info), L (link order), G (group), x (unknown) - O (extra OS processing required) o (OS specific), p (processor specific) - -There are no section groups in this file. - -Program Headers: - Type Offset VirtAddr PhysAddr - FileSiz MemSiz Flags Align - PHDR 0x0000000000000040 0x0000000000400040 0x0000000000400040 - 0x00000000000001c0 0x00000000000001c0 R E 8 - INTERP 0x0000000000000200 0x0000000000400200 0x0000000000400200 - 0x000000000000001c 0x000000000000001c R 1 - [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000 - 0x000000000000066c 0x000000000000066c R E 200000 - LOAD 0x0000000000000670 0x0000000000600670 0x0000000000600670 - 0x00000000000001ec 0x0000000000000200 RW 200000 - DYNAMIC 0x0000000000000698 0x0000000000600698 0x0000000000600698 - 0x0000000000000190 0x0000000000000190 RW 8 - NOTE 0x000000000000021c 0x000000000040021c 0x000000000040021c - 0x0000000000000020 0x0000000000000020 R 4 - GNU_EH_FRAME 0x00000000000005b0 0x00000000004005b0 0x00000000004005b0 - 0x0000000000000024 0x0000000000000024 R 4 - GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 - 0x0000000000000000 0x0000000000000000 RW 8 - - Section to Segment mapping: - Segment Sections... - 00 - 01 .interp - 02 .interp .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame - 03 .ctors .dtors .jcr .dynamic .got .got.plt .data .bss - 04 .dynamic - 05 .note.ABI-tag - 06 .eh_frame_hdr - 07 - -Dynamic section at offset 0x698 contains 20 entries: - Tag Type Name/Value - 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] - 0x000000000000000c (INIT) 0x400370 - 0x000000000000000d (FINI) 0x400588 - 0x000000006ffffef5 (GNU_HASH) 0x400240 - 0x0000000000000005 (STRTAB) 0x4002c0 - 0x0000000000000006 (SYMTAB) 0x400260 - 0x000000000000000a (STRSZ) 61 (bytes) - 0x000000000000000b (SYMENT) 24 (bytes) - 0x0000000000000015 (DEBUG) 0x0 - 0x0000000000000003 (PLTGOT) 0x600830 - 0x0000000000000002 (PLTRELSZ) 48 (bytes) - 0x0000000000000014 (PLTREL) RELA - 0x0000000000000017 (JMPREL) 0x400340 - 0x0000000000000007 (RELA) 0x400328 - 0x0000000000000008 (RELASZ) 24 (bytes) - 0x0000000000000009 (RELAENT) 24 (bytes) - 0x000000006ffffffe (VERNEED) 0x400308 - 0x000000006fffffff (VERNEEDNUM) 1 - 0x000000006ffffff0 (VERSYM) 0x4002fe - 0x0000000000000000 (NULL) 0x0 - -Relocation section '.rela.dyn' at offset 0x328 contains 1 entries: - Offset Info Type Sym. Value Sym. Name + Addend -000000600828 000100000006 R_X86_64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 - -Relocation section '.rela.plt' at offset 0x340 contains 2 entries: - Offset Info Type Sym. Value Sym. Name + Addend -000000600848 000200000007 R_X86_64_JUMP_SLO 0000000000000000 puts + 0 -000000600850 000300000007 R_X86_64_JUMP_SLO 0000000000000000 __libc_start_main + 0 - -There are no unwind sections in this file. - -Symbol table '.dynsym' contains 4 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 2: 0000000000000000 396 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.2.5 (2) - 3: 0000000000000000 421 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.2.5 (2) - -Symbol table '.symtab' contains 67 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000400200 0 SECTION LOCAL DEFAULT 1 - 2: 000000000040021c 0 SECTION LOCAL DEFAULT 2 - 3: 0000000000400240 0 SECTION LOCAL DEFAULT 3 - 4: 0000000000400260 0 SECTION LOCAL DEFAULT 4 - 5: 00000000004002c0 0 SECTION LOCAL DEFAULT 5 - 6: 00000000004002fe 0 SECTION LOCAL DEFAULT 6 - 7: 0000000000400308 0 SECTION LOCAL DEFAULT 7 - 8: 0000000000400328 0 SECTION LOCAL DEFAULT 8 - 9: 0000000000400340 0 SECTION LOCAL DEFAULT 9 - 10: 0000000000400370 0 SECTION LOCAL DEFAULT 10 - 11: 0000000000400388 0 SECTION LOCAL DEFAULT 11 - 12: 00000000004003c0 0 SECTION LOCAL DEFAULT 12 - 13: 0000000000400588 0 SECTION LOCAL DEFAULT 13 - 14: 0000000000400598 0 SECTION LOCAL DEFAULT 14 - 15: 00000000004005b0 0 SECTION LOCAL DEFAULT 15 - 16: 00000000004005d8 0 SECTION LOCAL DEFAULT 16 - 17: 0000000000600670 0 SECTION LOCAL DEFAULT 17 - 18: 0000000000600680 0 SECTION LOCAL DEFAULT 18 - 19: 0000000000600690 0 SECTION LOCAL DEFAULT 19 - 20: 0000000000600698 0 SECTION LOCAL DEFAULT 20 - 21: 0000000000600828 0 SECTION LOCAL DEFAULT 21 - 22: 0000000000600830 0 SECTION LOCAL DEFAULT 22 - 23: 0000000000600858 0 SECTION LOCAL DEFAULT 23 - 24: 0000000000600860 0 SECTION LOCAL DEFAULT 24 - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 - 26: 00000000004003ec 0 FUNC LOCAL DEFAULT 12 call_gmon_start - 27: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 28: 0000000000600670 0 OBJECT LOCAL DEFAULT 17 __CTOR_LIST__ - 29: 0000000000600680 0 OBJECT LOCAL DEFAULT 18 __DTOR_LIST__ - 30: 0000000000600690 0 OBJECT LOCAL DEFAULT 19 __JCR_LIST__ - 31: 0000000000600860 8 OBJECT LOCAL DEFAULT 24 dtor_idx.6147 - 32: 0000000000600868 1 OBJECT LOCAL DEFAULT 24 completed.6145 - 33: 0000000000400410 0 FUNC LOCAL DEFAULT 12 __do_global_dtors_aux - 34: 0000000000400470 0 FUNC LOCAL DEFAULT 12 frame_dummy - 35: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 36: 0000000000600678 0 OBJECT LOCAL DEFAULT 17 __CTOR_END__ - 37: 0000000000400668 0 OBJECT LOCAL DEFAULT 16 __FRAME_END__ - 38: 0000000000600690 0 OBJECT LOCAL DEFAULT 19 __JCR_END__ - 39: 0000000000400550 0 FUNC LOCAL DEFAULT 12 __do_global_ctors_aux - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS hello.c - 41: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __preinit_array_start - 42: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __fini_array_end - 43: 0000000000600830 0 OBJECT LOCAL HIDDEN 22 _GLOBAL_OFFSET_TABLE_ - 44: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __preinit_array_end - 45: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __fini_array_start - 46: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __init_array_end - 47: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __init_array_start - 48: 0000000000600698 0 OBJECT LOCAL HIDDEN 20 _DYNAMIC - 49: 0000000000600858 0 NOTYPE WEAK DEFAULT 23 data_start - 50: 00000000004004b0 2 FUNC GLOBAL DEFAULT 12 __libc_csu_fini - 51: 00000000004003c0 0 FUNC GLOBAL DEFAULT 12 _start - 52: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 53: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses - 54: 0000000000000000 396 FUNC GLOBAL DEFAULT UND puts@@GLIBC_2.2.5 - 55: 0000000000400588 0 FUNC GLOBAL DEFAULT 13 _fini - 56: 0000000000000000 421 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_ - 57: 0000000000400598 4 OBJECT GLOBAL DEFAULT 14 _IO_stdin_used - 58: 0000000000600858 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 59: 00000000004005a0 0 OBJECT GLOBAL HIDDEN 14 __dso_handle - 60: 0000000000600688 0 OBJECT GLOBAL HIDDEN 18 __DTOR_END__ - 61: 00000000004004c0 139 FUNC GLOBAL DEFAULT 12 __libc_csu_init - 62: 000000000060085c 0 NOTYPE GLOBAL DEFAULT ABS __bss_start - 63: 0000000000600870 0 NOTYPE GLOBAL DEFAULT ABS _end - 64: 000000000060085c 0 NOTYPE GLOBAL DEFAULT ABS _edata - 65: 0000000000400498 21 FUNC GLOBAL DEFAULT 12 main - 66: 0000000000400370 0 FUNC GLOBAL DEFAULT 10 _init - -Version symbols section '.gnu.version' contains 4 entries: - Addr: 00000000004002fe Offset: 0x0002fe Link: 4 (.dynsym) - 000: 0 (*local*) 0 (*local*) 2 (GLIBC_2.2.5) 2 (GLIBC_2.2.5) - -Version needs section '.gnu.version_r' contains 1 entries: - Addr: 0x0000000000400308 Offset: 0x000308 Link to section: 5 (.dynstr) - 000000: Version: 1 File: libc.so.6 Cnt: 1 - 0x0010: Name: GLIBC_2.2.5 Flags: none Version: 2 - -Notes at offset 0x0000021c with length 0x00000020: - Owner Data size Description - GNU 0x00000010 NT_VERSION (version) +ELF Header: + Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF64 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: Advanced Micro Devices X86-64 + Version: 0x1 + Entry point address: 0x4003c0 + Start of program headers: 64 (bytes into file) + Start of section headers: 2656 (bytes into file) + Flags: 0x0 + Size of this header: 64 (bytes) + Size of program headers: 56 (bytes) + Number of program headers: 8 + Size of section headers: 64 (bytes) + Number of section headers: 29 + Section header string table index: 26 + +Section Headers: + [Nr] Name Type Address Offset + Size EntSize Flags Link Info Align + [ 0] NULL 0000000000000000 00000000 + 0000000000000000 0000000000000000 0 0 0 + [ 1] .interp PROGBITS 0000000000400200 00000200 + 000000000000001c 0000000000000000 A 0 0 1 + [ 2] .note.ABI-tag NOTE 000000000040021c 0000021c + 0000000000000020 0000000000000000 A 0 0 4 + [ 3] .gnu.hash GNU_HASH 0000000000400240 00000240 + 000000000000001c 0000000000000000 A 4 0 8 + [ 4] .dynsym DYNSYM 0000000000400260 00000260 + 0000000000000060 0000000000000018 A 5 1 8 + [ 5] .dynstr STRTAB 00000000004002c0 000002c0 + 000000000000003d 0000000000000000 A 0 0 1 + [ 6] .gnu.version VERSYM 00000000004002fe 000002fe + 0000000000000008 0000000000000002 A 4 0 2 + [ 7] .gnu.version_r VERNEED 0000000000400308 00000308 + 0000000000000020 0000000000000000 A 5 1 8 + [ 8] .rela.dyn RELA 0000000000400328 00000328 + 0000000000000018 0000000000000018 A 4 0 8 + [ 9] .rela.plt RELA 0000000000400340 00000340 + 0000000000000030 0000000000000018 A 4 11 8 + [10] .init PROGBITS 0000000000400370 00000370 + 0000000000000018 0000000000000000 AX 0 0 4 + [11] .plt PROGBITS 0000000000400388 00000388 + 0000000000000030 0000000000000010 AX 0 0 4 + [12] .text PROGBITS 00000000004003c0 000003c0 + 00000000000001c8 0000000000000000 AX 0 0 16 + [13] .fini PROGBITS 0000000000400588 00000588 + 000000000000000e 0000000000000000 AX 0 0 4 + [14] .rodata PROGBITS 0000000000400598 00000598 + 0000000000000016 0000000000000000 A 0 0 8 + [15] .eh_frame_hdr PROGBITS 00000000004005b0 000005b0 + 0000000000000024 0000000000000000 A 0 0 4 + [16] .eh_frame PROGBITS 00000000004005d8 000005d8 + 0000000000000094 0000000000000000 A 0 0 8 + [17] .ctors PROGBITS 0000000000600670 00000670 + 0000000000000010 0000000000000000 WA 0 0 8 + [18] .dtors PROGBITS 0000000000600680 00000680 + 0000000000000010 0000000000000000 WA 0 0 8 + [19] .jcr PROGBITS 0000000000600690 00000690 + 0000000000000008 0000000000000000 WA 0 0 8 + [20] .dynamic DYNAMIC 0000000000600698 00000698 + 0000000000000190 0000000000000010 WA 5 0 8 + [21] .got PROGBITS 0000000000600828 00000828 + 0000000000000008 0000000000000008 WA 0 0 8 + [22] .got.plt PROGBITS 0000000000600830 00000830 + 0000000000000028 0000000000000008 WA 0 0 8 + [23] .data PROGBITS 0000000000600858 00000858 + 0000000000000004 0000000000000000 WA 0 0 4 + [24] .bss NOBITS 0000000000600860 0000085c + 0000000000000010 0000000000000000 WA 0 0 8 + [25] .comment PROGBITS 0000000000000000 0000085c + 0000000000000114 0000000000000000 0 0 1 + [26] .shstrtab STRTAB 0000000000000000 00000970 + 00000000000000eb 0000000000000000 0 0 1 + [27] .symtab SYMTAB 0000000000000000 000011a0 + 0000000000000648 0000000000000018 28 49 8 + [28] .strtab STRTAB 0000000000000000 000017e8 + 000000000000023f 0000000000000000 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings) + I (info), L (link order), G (group), x (unknown) + O (extra OS processing required) o (OS specific), p (processor specific) + +There are no section groups in this file. + +Program Headers: + Type Offset VirtAddr PhysAddr + FileSiz MemSiz Flags Align + PHDR 0x0000000000000040 0x0000000000400040 0x0000000000400040 + 0x00000000000001c0 0x00000000000001c0 R E 8 + INTERP 0x0000000000000200 0x0000000000400200 0x0000000000400200 + 0x000000000000001c 0x000000000000001c R 1 + [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] + LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000 + 0x000000000000066c 0x000000000000066c R E 200000 + LOAD 0x0000000000000670 0x0000000000600670 0x0000000000600670 + 0x00000000000001ec 0x0000000000000200 RW 200000 + DYNAMIC 0x0000000000000698 0x0000000000600698 0x0000000000600698 + 0x0000000000000190 0x0000000000000190 RW 8 + NOTE 0x000000000000021c 0x000000000040021c 0x000000000040021c + 0x0000000000000020 0x0000000000000020 R 4 + GNU_EH_FRAME 0x00000000000005b0 0x00000000004005b0 0x00000000004005b0 + 0x0000000000000024 0x0000000000000024 R 4 + GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 + 0x0000000000000000 0x0000000000000000 RW 8 + + Section to Segment mapping: + Segment Sections... + 00 + 01 .interp + 02 .interp .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame + 03 .ctors .dtors .jcr .dynamic .got .got.plt .data .bss + 04 .dynamic + 05 .note.ABI-tag + 06 .eh_frame_hdr + 07 + +Dynamic section at offset 0x698 contains 20 entries: + Tag Type Name/Value + 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] + 0x000000000000000c (INIT) 0x400370 + 0x000000000000000d (FINI) 0x400588 + 0x000000006ffffef5 (GNU_HASH) 0x400240 + 0x0000000000000005 (STRTAB) 0x4002c0 + 0x0000000000000006 (SYMTAB) 0x400260 + 0x000000000000000a (STRSZ) 61 (bytes) + 0x000000000000000b (SYMENT) 24 (bytes) + 0x0000000000000015 (DEBUG) 0x0 + 0x0000000000000003 (PLTGOT) 0x600830 + 0x0000000000000002 (PLTRELSZ) 48 (bytes) + 0x0000000000000014 (PLTREL) RELA + 0x0000000000000017 (JMPREL) 0x400340 + 0x0000000000000007 (RELA) 0x400328 + 0x0000000000000008 (RELASZ) 24 (bytes) + 0x0000000000000009 (RELAENT) 24 (bytes) + 0x000000006ffffffe (VERNEED) 0x400308 + 0x000000006fffffff (VERNEEDNUM) 1 + 0x000000006ffffff0 (VERSYM) 0x4002fe + 0x0000000000000000 (NULL) 0x0 + +Relocation section '.rela.dyn' at offset 0x328 contains 1 entries: + Offset Info Type Sym. Value Sym. Name + Addend +000000600828 000100000006 R_X86_64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 + +Relocation section '.rela.plt' at offset 0x340 contains 2 entries: + Offset Info Type Sym. Value Sym. Name + Addend +000000600848 000200000007 R_X86_64_JUMP_SLO 0000000000000000 puts + 0 +000000600850 000300000007 R_X86_64_JUMP_SLO 0000000000000000 __libc_start_main + 0 + +There are no unwind sections in this file. + +Symbol table '.dynsym' contains 4 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 2: 0000000000000000 396 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.2.5 (2) + 3: 0000000000000000 421 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.2.5 (2) + +Symbol table '.symtab' contains 67 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000400200 0 SECTION LOCAL DEFAULT 1 + 2: 000000000040021c 0 SECTION LOCAL DEFAULT 2 + 3: 0000000000400240 0 SECTION LOCAL DEFAULT 3 + 4: 0000000000400260 0 SECTION LOCAL DEFAULT 4 + 5: 00000000004002c0 0 SECTION LOCAL DEFAULT 5 + 6: 00000000004002fe 0 SECTION LOCAL DEFAULT 6 + 7: 0000000000400308 0 SECTION LOCAL DEFAULT 7 + 8: 0000000000400328 0 SECTION LOCAL DEFAULT 8 + 9: 0000000000400340 0 SECTION LOCAL DEFAULT 9 + 10: 0000000000400370 0 SECTION LOCAL DEFAULT 10 + 11: 0000000000400388 0 SECTION LOCAL DEFAULT 11 + 12: 00000000004003c0 0 SECTION LOCAL DEFAULT 12 + 13: 0000000000400588 0 SECTION LOCAL DEFAULT 13 + 14: 0000000000400598 0 SECTION LOCAL DEFAULT 14 + 15: 00000000004005b0 0 SECTION LOCAL DEFAULT 15 + 16: 00000000004005d8 0 SECTION LOCAL DEFAULT 16 + 17: 0000000000600670 0 SECTION LOCAL DEFAULT 17 + 18: 0000000000600680 0 SECTION LOCAL DEFAULT 18 + 19: 0000000000600690 0 SECTION LOCAL DEFAULT 19 + 20: 0000000000600698 0 SECTION LOCAL DEFAULT 20 + 21: 0000000000600828 0 SECTION LOCAL DEFAULT 21 + 22: 0000000000600830 0 SECTION LOCAL DEFAULT 22 + 23: 0000000000600858 0 SECTION LOCAL DEFAULT 23 + 24: 0000000000600860 0 SECTION LOCAL DEFAULT 24 + 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 + 26: 00000000004003ec 0 FUNC LOCAL DEFAULT 12 call_gmon_start + 27: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 28: 0000000000600670 0 OBJECT LOCAL DEFAULT 17 __CTOR_LIST__ + 29: 0000000000600680 0 OBJECT LOCAL DEFAULT 18 __DTOR_LIST__ + 30: 0000000000600690 0 OBJECT LOCAL DEFAULT 19 __JCR_LIST__ + 31: 0000000000600860 8 OBJECT LOCAL DEFAULT 24 dtor_idx.6147 + 32: 0000000000600868 1 OBJECT LOCAL DEFAULT 24 completed.6145 + 33: 0000000000400410 0 FUNC LOCAL DEFAULT 12 __do_global_dtors_aux + 34: 0000000000400470 0 FUNC LOCAL DEFAULT 12 frame_dummy + 35: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 36: 0000000000600678 0 OBJECT LOCAL DEFAULT 17 __CTOR_END__ + 37: 0000000000400668 0 OBJECT LOCAL DEFAULT 16 __FRAME_END__ + 38: 0000000000600690 0 OBJECT LOCAL DEFAULT 19 __JCR_END__ + 39: 0000000000400550 0 FUNC LOCAL DEFAULT 12 __do_global_ctors_aux + 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS hello.c + 41: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __preinit_array_start + 42: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __fini_array_end + 43: 0000000000600830 0 OBJECT LOCAL HIDDEN 22 _GLOBAL_OFFSET_TABLE_ + 44: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __preinit_array_end + 45: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __fini_array_start + 46: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __init_array_end + 47: 000000000060066c 0 NOTYPE LOCAL HIDDEN 17 __init_array_start + 48: 0000000000600698 0 OBJECT LOCAL HIDDEN 20 _DYNAMIC + 49: 0000000000600858 0 NOTYPE WEAK DEFAULT 23 data_start + 50: 00000000004004b0 2 FUNC GLOBAL DEFAULT 12 __libc_csu_fini + 51: 00000000004003c0 0 FUNC GLOBAL DEFAULT 12 _start + 52: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 53: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses + 54: 0000000000000000 396 FUNC GLOBAL DEFAULT UND puts@@GLIBC_2.2.5 + 55: 0000000000400588 0 FUNC GLOBAL DEFAULT 13 _fini + 56: 0000000000000000 421 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_ + 57: 0000000000400598 4 OBJECT GLOBAL DEFAULT 14 _IO_stdin_used + 58: 0000000000600858 0 NOTYPE GLOBAL DEFAULT 23 __data_start + 59: 00000000004005a0 0 OBJECT GLOBAL HIDDEN 14 __dso_handle + 60: 0000000000600688 0 OBJECT GLOBAL HIDDEN 18 __DTOR_END__ + 61: 00000000004004c0 139 FUNC GLOBAL DEFAULT 12 __libc_csu_init + 62: 000000000060085c 0 NOTYPE GLOBAL DEFAULT ABS __bss_start + 63: 0000000000600870 0 NOTYPE GLOBAL DEFAULT ABS _end + 64: 000000000060085c 0 NOTYPE GLOBAL DEFAULT ABS _edata + 65: 0000000000400498 21 FUNC GLOBAL DEFAULT 12 main + 66: 0000000000400370 0 FUNC GLOBAL DEFAULT 10 _init + +Version symbols section '.gnu.version' contains 4 entries: + Addr: 00000000004002fe Offset: 0x0002fe Link: 4 (.dynsym) + 000: 0 (*local*) 0 (*local*) 2 (GLIBC_2.2.5) 2 (GLIBC_2.2.5) + +Version needs section '.gnu.version_r' contains 1 entries: + Addr: 0x0000000000400308 Offset: 0x000308 Link to section: 5 (.dynstr) + 000000: Version: 1 File: libc.so.6 Cnt: 1 + 0x0010: Name: GLIBC_2.2.5 Flags: none Version: 2 + +Notes at offset 0x0000021c with length 0x00000020: + Owner Data size Description + GNU 0x00000010 NT_VERSION (version) diff --git a/elf_examples/hello_64_o.txt b/elf_examples/hello_64_o.txt index 4dfda23..fd363a5 100644 --- a/elf_examples/hello_64_o.txt +++ b/elf_examples/hello_64_o.txt @@ -1,85 +1,85 @@ -ELF Header: - Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 - Class: ELF64 - Data: 2's complement, little endian - Version: 1 (current) - OS/ABI: UNIX - System V - ABI Version: 0 - Type: REL (Relocatable file) - Machine: Advanced Micro Devices X86-64 - Version: 0x1 - Entry point address: 0x0 - Start of program headers: 0 (bytes into file) - Start of section headers: 296 (bytes into file) - Flags: 0x0 - Size of this header: 64 (bytes) - Size of program headers: 0 (bytes) - Number of program headers: 0 - Size of section headers: 64 (bytes) - Number of section headers: 13 - Section header string table index: 10 - -Section Headers: - [Nr] Name Type Address Offset - Size EntSize Flags Link Info Align - [ 0] NULL 0000000000000000 00000000 - 0000000000000000 0000000000000000 0 0 0 - [ 1] .text PROGBITS 0000000000000000 00000040 - 0000000000000015 0000000000000000 AX 0 0 4 - [ 2] .rela.text RELA 0000000000000000 00000588 - 0000000000000030 0000000000000018 11 1 8 - [ 3] .data PROGBITS 0000000000000000 00000058 - 0000000000000000 0000000000000000 WA 0 0 4 - [ 4] .bss NOBITS 0000000000000000 00000058 - 0000000000000000 0000000000000000 WA 0 0 4 - [ 5] .rodata PROGBITS 0000000000000000 00000058 - 0000000000000006 0000000000000000 A 0 0 1 - [ 6] .eh_frame PROGBITS 0000000000000000 00000060 - 0000000000000038 0000000000000000 A 0 0 8 - [ 7] .rela.eh_frame RELA 0000000000000000 000005b8 - 0000000000000018 0000000000000018 11 6 8 - [ 8] .comment PROGBITS 0000000000000000 00000098 - 000000000000002e 0000000000000000 0 0 1 - [ 9] .note.GNU-stack PROGBITS 0000000000000000 000000c6 - 0000000000000000 0000000000000000 0 0 1 - [10] .shstrtab STRTAB 0000000000000000 000000c6 - 0000000000000061 0000000000000000 0 0 1 - [11] .symtab SYMTAB 0000000000000000 00000468 - 0000000000000108 0000000000000018 12 9 8 - [12] .strtab STRTAB 0000000000000000 00000570 - 0000000000000013 0000000000000000 0 0 1 -Key to Flags: - W (write), A (alloc), X (execute), M (merge), S (strings) - I (info), L (link order), G (group), x (unknown) - O (extra OS processing required) o (OS specific), p (processor specific) - -There are no section groups in this file. - -There are no program headers in this file. - -Relocation section '.rela.text' at offset 0x588 contains 2 entries: - Offset Info Type Sym. Value Sym. Name + Addend -000000000005 00050000000a R_X86_64_32 0000000000000000 .rodata + 0 -00000000000a 000a00000002 R_X86_64_PC32 0000000000000000 puts + fffffffffffffffc - -Relocation section '.rela.eh_frame' at offset 0x5b8 contains 1 entries: - Offset Info Type Sym. Value Sym. Name + Addend -000000000020 00020000000a R_X86_64_32 0000000000000000 .text + 0 - -There are no unwind sections in this file. - -Symbol table '.symtab' contains 11 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS hello.c - 2: 0000000000000000 0 SECTION LOCAL DEFAULT 1 - 3: 0000000000000000 0 SECTION LOCAL DEFAULT 3 - 4: 0000000000000000 0 SECTION LOCAL DEFAULT 4 - 5: 0000000000000000 0 SECTION LOCAL DEFAULT 5 - 6: 0000000000000000 0 SECTION LOCAL DEFAULT 6 - 7: 0000000000000000 0 SECTION LOCAL DEFAULT 9 - 8: 0000000000000000 0 SECTION LOCAL DEFAULT 8 - 9: 0000000000000000 21 FUNC GLOBAL DEFAULT 1 main - 10: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND puts - -No version information found in this file. +ELF Header: + Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF64 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: REL (Relocatable file) + Machine: Advanced Micro Devices X86-64 + Version: 0x1 + Entry point address: 0x0 + Start of program headers: 0 (bytes into file) + Start of section headers: 296 (bytes into file) + Flags: 0x0 + Size of this header: 64 (bytes) + Size of program headers: 0 (bytes) + Number of program headers: 0 + Size of section headers: 64 (bytes) + Number of section headers: 13 + Section header string table index: 10 + +Section Headers: + [Nr] Name Type Address Offset + Size EntSize Flags Link Info Align + [ 0] NULL 0000000000000000 00000000 + 0000000000000000 0000000000000000 0 0 0 + [ 1] .text PROGBITS 0000000000000000 00000040 + 0000000000000015 0000000000000000 AX 0 0 4 + [ 2] .rela.text RELA 0000000000000000 00000588 + 0000000000000030 0000000000000018 11 1 8 + [ 3] .data PROGBITS 0000000000000000 00000058 + 0000000000000000 0000000000000000 WA 0 0 4 + [ 4] .bss NOBITS 0000000000000000 00000058 + 0000000000000000 0000000000000000 WA 0 0 4 + [ 5] .rodata PROGBITS 0000000000000000 00000058 + 0000000000000006 0000000000000000 A 0 0 1 + [ 6] .eh_frame PROGBITS 0000000000000000 00000060 + 0000000000000038 0000000000000000 A 0 0 8 + [ 7] .rela.eh_frame RELA 0000000000000000 000005b8 + 0000000000000018 0000000000000018 11 6 8 + [ 8] .comment PROGBITS 0000000000000000 00000098 + 000000000000002e 0000000000000000 0 0 1 + [ 9] .note.GNU-stack PROGBITS 0000000000000000 000000c6 + 0000000000000000 0000000000000000 0 0 1 + [10] .shstrtab STRTAB 0000000000000000 000000c6 + 0000000000000061 0000000000000000 0 0 1 + [11] .symtab SYMTAB 0000000000000000 00000468 + 0000000000000108 0000000000000018 12 9 8 + [12] .strtab STRTAB 0000000000000000 00000570 + 0000000000000013 0000000000000000 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings) + I (info), L (link order), G (group), x (unknown) + O (extra OS processing required) o (OS specific), p (processor specific) + +There are no section groups in this file. + +There are no program headers in this file. + +Relocation section '.rela.text' at offset 0x588 contains 2 entries: + Offset Info Type Sym. Value Sym. Name + Addend +000000000005 00050000000a R_X86_64_32 0000000000000000 .rodata + 0 +00000000000a 000a00000002 R_X86_64_PC32 0000000000000000 puts + fffffffffffffffc + +Relocation section '.rela.eh_frame' at offset 0x5b8 contains 1 entries: + Offset Info Type Sym. Value Sym. Name + Addend +000000000020 00020000000a R_X86_64_32 0000000000000000 .text + 0 + +There are no unwind sections in this file. + +Symbol table '.symtab' contains 11 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS hello.c + 2: 0000000000000000 0 SECTION LOCAL DEFAULT 1 + 3: 0000000000000000 0 SECTION LOCAL DEFAULT 3 + 4: 0000000000000000 0 SECTION LOCAL DEFAULT 4 + 5: 0000000000000000 0 SECTION LOCAL DEFAULT 5 + 6: 0000000000000000 0 SECTION LOCAL DEFAULT 6 + 7: 0000000000000000 0 SECTION LOCAL DEFAULT 9 + 8: 0000000000000000 0 SECTION LOCAL DEFAULT 8 + 9: 0000000000000000 21 FUNC GLOBAL DEFAULT 1 main + 10: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND puts + +No version information found in this file. diff --git a/elf_examples/test_ppc.cpp b/elf_examples/test_ppc.cpp index d07f900..dbc7542 100644 --- a/elf_examples/test_ppc.cpp +++ b/elf_examples/test_ppc.cpp @@ -1,8 +1,8 @@ -#include <iostream> - -int main() -{ - std::cout << "Hello" << std::endl; - - return 0; -} +#include <iostream> + +int main() +{ + std::cout << "Hello" << std::endl; + + return 0; +} diff --git a/elf_examples/test_ppc.txt b/elf_examples/test_ppc.txt index 3a08811..93a3a94 100644 --- a/elf_examples/test_ppc.txt +++ b/elf_examples/test_ppc.txt @@ -1,263 +1,263 @@ -ELF Header: - Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 - Class: ELF32 - Data: 2's complement, big endian - Version: 1 (current) - OS/ABI: UNIX - System V - ABI Version: 0 - Type: EXEC (Executable file) - Machine: PowerPC - Version: 0x1 - Entry point address: 0x10000550 - Start of program headers: 52 (bytes into file) - Start of section headers: 3484 (bytes into file) - Flags: 0x0 - Size of this header: 52 (bytes) - Size of program headers: 32 (bytes) - Number of program headers: 8 - Size of section headers: 40 (bytes) - Number of section headers: 31 - Section header string table index: 28 - -Section Headers: - [Nr] Name Type Addr Off Size ES Flg Lk Inf Al - [ 0] NULL 00000000 000000 000000 00 0 0 0 - [ 1] .interp PROGBITS 10000134 000134 00000d 00 A 0 0 1 - [ 2] .note.ABI-tag NOTE 10000144 000144 000020 00 A 0 0 4 - [ 3] .hash HASH 10000164 000164 000048 04 A 4 0 4 - [ 4] .dynsym DYNSYM 100001ac 0001ac 0000d0 10 A 5 1 4 - [ 5] .dynstr STRTAB 1000027c 00027c 000183 00 A 0 0 1 - [ 6] .gnu.version VERSYM 10000400 000400 00001a 02 A 4 0 2 - [ 7] .gnu.version_r VERNEED 1000041c 00041c 000060 00 A 5 2 4 - [ 8] .rela.dyn RELA 1000047c 00047c 000018 0c A 4 0 4 - [ 9] .rela.plt RELA 10000494 000494 00006c 0c A 4 22 4 - [10] .init PROGBITS 10000500 000500 00004c 00 AX 0 0 4 - [11] .text PROGBITS 10000550 000550 000480 00 AX 0 0 16 - [12] .fini PROGBITS 100009d0 0009d0 000038 00 AX 0 0 4 - [13] .rodata PROGBITS 10000a08 000a08 00001a 00 A 0 0 4 - [14] .eh_frame_hdr PROGBITS 10000a24 000a24 000024 00 A 0 0 4 - [15] .eh_frame PROGBITS 10000a48 000a48 000084 00 A 0 0 4 - [16] .ctors PROGBITS 10010acc 000acc 00000c 00 WA 0 0 4 - [17] .dtors PROGBITS 10010ad8 000ad8 000008 00 WA 0 0 4 - [18] .jcr PROGBITS 10010ae0 000ae0 000004 00 WA 0 0 4 - [19] .got2 PROGBITS 10010ae4 000ae4 000008 00 WA 0 0 1 - [20] .dynamic DYNAMIC 10010aec 000aec 0000e8 08 WA 5 0 4 - [21] .got PROGBITS 10010bd4 000bd4 000010 04 WA 0 0 4 - [22] .plt PROGBITS 10010be4 000be4 000024 00 WA 0 0 4 - [23] .data PROGBITS 10010c08 000c08 000004 00 WA 0 0 4 - [24] .bss NOBITS 10010c0c 000c0c 000098 00 WA 0 0 4 - [25] .comment PROGBITS 00000000 000c0c 000027 00 0 0 1 - [26] .debug_frame PROGBITS 00000000 000c34 000050 00 0 0 4 - [27] .gnu.attributes LOOS+ffffff5 00000000 000c84 000014 00 0 0 1 - [28] .shstrtab STRTAB 00000000 000c98 000101 00 0 0 1 - [29] .symtab SYMTAB 00000000 001274 000500 10 30 54 4 - [30] .strtab STRTAB 00000000 001774 0003cc 00 0 0 1 -Key to Flags: - W (write), A (alloc), X (execute), M (merge), S (strings) - I (info), L (link order), G (group), x (unknown) - O (extra OS processing required) o (OS specific), p (processor specific) - -There are no section groups in this file. - -Program Headers: - Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align - PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 - INTERP 0x000134 0x10000134 0x10000134 0x0000d 0x0000d R 0x1 - [Requesting program interpreter: /lib/ld.so.1] - LOAD 0x000000 0x10000000 0x10000000 0x00acc 0x00acc R E 0x10000 - LOAD 0x000acc 0x10010acc 0x10010acc 0x00140 0x001d8 RW 0x10000 - DYNAMIC 0x000aec 0x10010aec 0x10010aec 0x000e8 0x000e8 RW 0x4 - NOTE 0x000144 0x10000144 0x10000144 0x00020 0x00020 R 0x4 - GNU_EH_FRAME 0x000a24 0x10000a24 0x10000a24 0x00024 0x00024 R 0x4 - GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4 - - Section to Segment mapping: - Segment Sections... - 00 - 01 .interp - 02 .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .text .fini .rodata .eh_frame_hdr .eh_frame - 03 .ctors .dtors .jcr .got2 .dynamic .got .plt .data .bss - 04 .dynamic - 05 .note.ABI-tag - 06 .eh_frame_hdr - 07 - -Dynamic section at offset 0xaec contains 24 entries: - Tag Type Name/Value - 0x00000001 (NEEDED) Shared library: [libstdc++.so.6] - 0x00000001 (NEEDED) Shared library: [libm.so.6] - 0x00000001 (NEEDED) Shared library: [libgcc_s.so.1] - 0x00000001 (NEEDED) Shared library: [libc.so.6] - 0x0000000c (INIT) 0x10000500 - 0x0000000d (FINI) 0x100009d0 - 0x00000004 (HASH) 0x10000164 - 0x00000005 (STRTAB) 0x1000027c - 0x00000006 (SYMTAB) 0x100001ac - 0x0000000a (STRSZ) 387 (bytes) - 0x0000000b (SYMENT) 16 (bytes) - 0x00000015 (DEBUG) 0x0 - 0x00000003 (PLTGOT) 0x10010be4 - 0x00000002 (PLTRELSZ) 108 (bytes) - 0x00000014 (PLTREL) RELA - 0x00000017 (JMPREL) 0x10000494 - 0x70000000 (PPC_GOT) 0x10010bd8 - 0x00000007 (RELA) 0x1000047c - 0x00000008 (RELASZ) 132 (bytes) - 0x00000009 (RELAENT) 12 (bytes) - 0x6ffffffe (VERNEED) 0x1000041c - 0x6fffffff (VERNEEDNUM) 2 - 0x6ffffff0 (VERSYM) 0x10000400 - 0x00000000 (NULL) 0x0 - -Relocation section '.rela.dyn' at offset 0x47c contains 2 entries: - Offset Info Type Sym.Value Sym. Name + Addend -10010bd4 00000214 R_PPC_GLOB_DAT 00000000 __gmon_start__ + 0 -10010c0c 00000913 R_PPC_COPY 10010c0c _ZSt4cout + 0 - -Relocation section '.rela.plt' at offset 0x494 contains 9 entries: - Offset Info Type Sym.Value Sym. Name + Addend -10010be4 00000115 R_PPC_JMP_SLOT 100008e0 __cxa_atexit + 0 -10010be8 00000215 R_PPC_JMP_SLOT 00000000 __gmon_start__ + 0 -10010bec 00000415 R_PPC_JMP_SLOT 10000900 _ZNSt8ios_base4InitC1E + 0 -10010bf0 00000515 R_PPC_JMP_SLOT 10000910 __libc_start_main + 0 -10010bf4 00000615 R_PPC_JMP_SLOT 10000920 _ZNSt8ios_base4InitD1E + 0 -10010bf8 00000715 R_PPC_JMP_SLOT 10000930 _ZStlsISt11char_traits + 0 -10010bfc 00000a15 R_PPC_JMP_SLOT 10000940 _ZNSolsEPFRSoS_E + 0 -10010c00 00000b15 R_PPC_JMP_SLOT 10000950 _ZSt4endlIcSt11char_tr + 0 -10010c04 00000c15 R_PPC_JMP_SLOT 10000960 __gxx_personality_v0 + 0 - -There are no unwind sections in this file. - -Symbol table '.dynsym' contains 13 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 00000000 0 NOTYPE LOCAL DEFAULT UND - 1: 100008e0 144 FUNC GLOBAL DEFAULT UND __cxa_atexit@GLIBC_2.1.3 (2) - 2: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 3: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses - 4: 10000900 1452 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitC1Ev@GLIBCXX_3.4 (3) - 5: 10000910 232 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.0 (4) - 6: 10000920 204 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitD1Ev@GLIBCXX_3.4 (3) - 7: 10000930 164 FUNC GLOBAL DEFAULT UND _ZStlsISt11char_traitsIcE@GLIBCXX_3.4 (3) - 8: 10000a18 4 OBJECT GLOBAL DEFAULT 13 _IO_stdin_used - 9: 10010c0c 140 OBJECT GLOBAL DEFAULT 24 _ZSt4cout@GLIBCXX_3.4 (3) - 10: 10000940 36 FUNC GLOBAL DEFAULT UND _ZNSolsEPFRSoS_E@GLIBCXX_3.4 (3) - 11: 10000950 336 FUNC GLOBAL DEFAULT UND _ZSt4endlIcSt11char_trait@GLIBCXX_3.4 (3) - 12: 10000960 1420 FUNC GLOBAL DEFAULT UND __gxx_personality_v0@CXXABI_1.3 (5) - -Symbol table '.symtab' contains 80 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 00000000 0 NOTYPE LOCAL DEFAULT UND - 1: 10000134 0 SECTION LOCAL DEFAULT 1 - 2: 10000144 0 SECTION LOCAL DEFAULT 2 - 3: 10000164 0 SECTION LOCAL DEFAULT 3 - 4: 100001ac 0 SECTION LOCAL DEFAULT 4 - 5: 1000027c 0 SECTION LOCAL DEFAULT 5 - 6: 10000400 0 SECTION LOCAL DEFAULT 6 - 7: 1000041c 0 SECTION LOCAL DEFAULT 7 - 8: 1000047c 0 SECTION LOCAL DEFAULT 8 - 9: 10000494 0 SECTION LOCAL DEFAULT 9 - 10: 10000500 0 SECTION LOCAL DEFAULT 10 - 11: 10000550 0 SECTION LOCAL DEFAULT 11 - 12: 100009d0 0 SECTION LOCAL DEFAULT 12 - 13: 10000a08 0 SECTION LOCAL DEFAULT 13 - 14: 10000a24 0 SECTION LOCAL DEFAULT 14 - 15: 10000a48 0 SECTION LOCAL DEFAULT 15 - 16: 10010acc 0 SECTION LOCAL DEFAULT 16 - 17: 10010ad8 0 SECTION LOCAL DEFAULT 17 - 18: 10010ae0 0 SECTION LOCAL DEFAULT 18 - 19: 10010ae4 0 SECTION LOCAL DEFAULT 19 - 20: 10010aec 0 SECTION LOCAL DEFAULT 20 - 21: 10010bd4 0 SECTION LOCAL DEFAULT 21 - 22: 10010be4 0 SECTION LOCAL DEFAULT 22 - 23: 10010c08 0 SECTION LOCAL DEFAULT 23 - 24: 10010c0c 0 SECTION LOCAL DEFAULT 24 - 25: 00000000 0 SECTION LOCAL DEFAULT 25 - 26: 00000000 0 SECTION LOCAL DEFAULT 26 - 27: 00000000 0 SECTION LOCAL DEFAULT 27 - 28: 00000000 0 FILE LOCAL DEFAULT ABS init.c - 29: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 30: 10010acc 0 OBJECT LOCAL DEFAULT 16 __CTOR_LIST__ - 31: 10010ad8 0 OBJECT LOCAL DEFAULT 17 __DTOR_LIST__ - 32: 10010ae0 0 OBJECT LOCAL DEFAULT 18 __JCR_LIST__ - 33: 10000574 0 FUNC LOCAL DEFAULT 11 __do_global_dtors_aux - 34: 10010c98 1 OBJECT LOCAL DEFAULT 24 completed.6348 - 35: 10010c9c 4 OBJECT LOCAL DEFAULT 24 dtor_idx.6350 - 36: 1000061c 0 FUNC LOCAL DEFAULT 11 call___do_global_dtors_au - 37: 10000638 0 FUNC LOCAL DEFAULT 11 frame_dummy - 38: 10000680 0 FUNC LOCAL DEFAULT 11 call_frame_dummy - 39: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 10010ad4 0 OBJECT LOCAL DEFAULT 16 __CTOR_END__ - 41: 10000ac8 0 OBJECT LOCAL DEFAULT 15 __FRAME_END__ - 42: 10010ae0 0 OBJECT LOCAL DEFAULT 18 __JCR_END__ - 43: 1000086c 0 FUNC LOCAL DEFAULT 11 __do_global_ctors_aux - 44: 100008bc 0 FUNC LOCAL DEFAULT 11 call___do_global_ctors_au - 45: 00000000 0 FILE LOCAL DEFAULT ABS test_ppc.cpp - 46: 100006f8 128 FUNC LOCAL DEFAULT 11 _Z41__static_initializati - 47: 10010ca0 1 OBJECT LOCAL DEFAULT 24 _ZStL8__ioinit - 48: 10000778 60 FUNC LOCAL DEFAULT 11 _GLOBAL__I_main - 49: 00000000 0 FILE LOCAL DEFAULT ABS elf-init.c - 50: 10010bd8 0 OBJECT LOCAL HIDDEN 21 _GLOBAL_OFFSET_TABLE_ - 51: 10010acc 0 NOTYPE LOCAL HIDDEN 16 __init_array_end - 52: 10010acc 0 NOTYPE LOCAL HIDDEN 16 __init_array_start - 53: 10010aec 0 OBJECT LOCAL HIDDEN 20 _DYNAMIC - 54: 10010c08 0 NOTYPE WEAK DEFAULT 23 data_start - 55: 100008e0 144 FUNC GLOBAL DEFAULT UND __cxa_atexit@@GLIBC_2.1.3 - 56: 100007b4 4 FUNC GLOBAL DEFAULT 11 __libc_csu_fini - 57: 10000550 36 FUNC GLOBAL DEFAULT 11 _start - 58: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 59: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses - 60: 100009d0 0 FUNC GLOBAL DEFAULT 12 _fini - 61: 10000900 1452 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitC1Ev@@ - 62: 10018c0c 0 NOTYPE GLOBAL DEFAULT 24 _SDA_BASE_ - 63: 10000910 232 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_ - 64: 10000920 204 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitD1Ev@@ - 65: 10000930 164 FUNC GLOBAL DEFAULT UND _ZStlsISt11char_traitsIcE - 66: 10000a18 4 OBJECT GLOBAL DEFAULT 13 _IO_stdin_used - 67: 10010c08 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 68: 10010c0c 140 OBJECT GLOBAL DEFAULT 24 _ZSt4cout@@GLIBCXX_3.4 - 69: 10010c08 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 70: 10010adc 0 OBJECT GLOBAL HIDDEN 17 __DTOR_END__ - 71: 100007b8 180 FUNC GLOBAL DEFAULT 11 __libc_csu_init - 72: 10010c0c 0 NOTYPE GLOBAL DEFAULT ABS __bss_start - 73: 10010ca4 0 NOTYPE GLOBAL DEFAULT ABS _end - 74: 10000940 36 FUNC GLOBAL DEFAULT UND _ZNSolsEPFRSoS_E@@GLIBCXX - 75: 10000950 336 FUNC GLOBAL DEFAULT UND _ZSt4endlIcSt11char_trait - 76: 10010c0c 0 NOTYPE GLOBAL DEFAULT ABS _edata - 77: 10000960 1420 FUNC GLOBAL DEFAULT UND __gxx_personality_v0@@CXX - 78: 1000069c 92 FUNC GLOBAL DEFAULT 11 main - 79: 10000500 0 FUNC GLOBAL DEFAULT 10 _init - -Histogram for bucket list length (total of 3 buckets): - Length Number % of total Coverage - 0 0 ( 0.0%) - 1 0 ( 0.0%) 0.0% - 2 1 ( 33.3%) 16.7% - 3 0 ( 0.0%) 16.7% - 4 1 ( 33.3%) 50.0% - 5 0 ( 0.0%) 50.0% - 6 1 ( 33.3%) 100.0% - -Version symbols section '.gnu.version' contains 13 entries: - Addr: 0000000010000400 Offset: 0x000400 Link: 4 (.dynsym) - 000: 0 (*local*) 2 (GLIBC_2.1.3) 0 (*local*) 0 (*local*) - 004: 3 (GLIBCXX_3.4) 4 (GLIBC_2.0) 3 (GLIBCXX_3.4) 3 (GLIBCXX_3.4) - 008: 1 (*global*) 3 (GLIBCXX_3.4) 3 (GLIBCXX_3.4) 3 (GLIBCXX_3.4) - 00c: 5 (CXXABI_1.3) - -Version needs section '.gnu.version_r' contains 2 entries: - Addr: 0x000000001000041c Offset: 0x00041c Link: 5 (.dynstr) - 000000: Version: 1 File: libstdc++.so.6 Cnt: 2 - 0x0010: Name: CXXABI_1.3 Flags: none Version: 5 - 0x0020: Name: GLIBCXX_3.4 Flags: none Version: 3 - 0x0030: Version: 1 File: libc.so.6 Cnt: 2 - 0x0040: Name: GLIBC_2.0 Flags: none Version: 4 - 0x0050: Name: GLIBC_2.1.3 Flags: none Version: 2 - -Notes at offset 0x00000144 with length 0x00000020: - Owner Data size Description - GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag) -Attribute Section: gnu -File Attributes - Tag_GNU_Power_ABI_FP: Hard float - Tag_GNU_Power_ABI_Vector: Generic - Tag_GNU_Power_ABI_Struct_Return: Memory +ELF Header: + Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, big endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: PowerPC + Version: 0x1 + Entry point address: 0x10000550 + Start of program headers: 52 (bytes into file) + Start of section headers: 3484 (bytes into file) + Flags: 0x0 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 8 + Size of section headers: 40 (bytes) + Number of section headers: 31 + Section header string table index: 28 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .interp PROGBITS 10000134 000134 00000d 00 A 0 0 1 + [ 2] .note.ABI-tag NOTE 10000144 000144 000020 00 A 0 0 4 + [ 3] .hash HASH 10000164 000164 000048 04 A 4 0 4 + [ 4] .dynsym DYNSYM 100001ac 0001ac 0000d0 10 A 5 1 4 + [ 5] .dynstr STRTAB 1000027c 00027c 000183 00 A 0 0 1 + [ 6] .gnu.version VERSYM 10000400 000400 00001a 02 A 4 0 2 + [ 7] .gnu.version_r VERNEED 1000041c 00041c 000060 00 A 5 2 4 + [ 8] .rela.dyn RELA 1000047c 00047c 000018 0c A 4 0 4 + [ 9] .rela.plt RELA 10000494 000494 00006c 0c A 4 22 4 + [10] .init PROGBITS 10000500 000500 00004c 00 AX 0 0 4 + [11] .text PROGBITS 10000550 000550 000480 00 AX 0 0 16 + [12] .fini PROGBITS 100009d0 0009d0 000038 00 AX 0 0 4 + [13] .rodata PROGBITS 10000a08 000a08 00001a 00 A 0 0 4 + [14] .eh_frame_hdr PROGBITS 10000a24 000a24 000024 00 A 0 0 4 + [15] .eh_frame PROGBITS 10000a48 000a48 000084 00 A 0 0 4 + [16] .ctors PROGBITS 10010acc 000acc 00000c 00 WA 0 0 4 + [17] .dtors PROGBITS 10010ad8 000ad8 000008 00 WA 0 0 4 + [18] .jcr PROGBITS 10010ae0 000ae0 000004 00 WA 0 0 4 + [19] .got2 PROGBITS 10010ae4 000ae4 000008 00 WA 0 0 1 + [20] .dynamic DYNAMIC 10010aec 000aec 0000e8 08 WA 5 0 4 + [21] .got PROGBITS 10010bd4 000bd4 000010 04 WA 0 0 4 + [22] .plt PROGBITS 10010be4 000be4 000024 00 WA 0 0 4 + [23] .data PROGBITS 10010c08 000c08 000004 00 WA 0 0 4 + [24] .bss NOBITS 10010c0c 000c0c 000098 00 WA 0 0 4 + [25] .comment PROGBITS 00000000 000c0c 000027 00 0 0 1 + [26] .debug_frame PROGBITS 00000000 000c34 000050 00 0 0 4 + [27] .gnu.attributes LOOS+ffffff5 00000000 000c84 000014 00 0 0 1 + [28] .shstrtab STRTAB 00000000 000c98 000101 00 0 0 1 + [29] .symtab SYMTAB 00000000 001274 000500 10 30 54 4 + [30] .strtab STRTAB 00000000 001774 0003cc 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings) + I (info), L (link order), G (group), x (unknown) + O (extra OS processing required) o (OS specific), p (processor specific) + +There are no section groups in this file. + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 + INTERP 0x000134 0x10000134 0x10000134 0x0000d 0x0000d R 0x1 + [Requesting program interpreter: /lib/ld.so.1] + LOAD 0x000000 0x10000000 0x10000000 0x00acc 0x00acc R E 0x10000 + LOAD 0x000acc 0x10010acc 0x10010acc 0x00140 0x001d8 RW 0x10000 + DYNAMIC 0x000aec 0x10010aec 0x10010aec 0x000e8 0x000e8 RW 0x4 + NOTE 0x000144 0x10000144 0x10000144 0x00020 0x00020 R 0x4 + GNU_EH_FRAME 0x000a24 0x10000a24 0x10000a24 0x00024 0x00024 R 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4 + + Section to Segment mapping: + Segment Sections... + 00 + 01 .interp + 02 .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .text .fini .rodata .eh_frame_hdr .eh_frame + 03 .ctors .dtors .jcr .got2 .dynamic .got .plt .data .bss + 04 .dynamic + 05 .note.ABI-tag + 06 .eh_frame_hdr + 07 + +Dynamic section at offset 0xaec contains 24 entries: + Tag Type Name/Value + 0x00000001 (NEEDED) Shared library: [libstdc++.so.6] + 0x00000001 (NEEDED) Shared library: [libm.so.6] + 0x00000001 (NEEDED) Shared library: [libgcc_s.so.1] + 0x00000001 (NEEDED) Shared library: [libc.so.6] + 0x0000000c (INIT) 0x10000500 + 0x0000000d (FINI) 0x100009d0 + 0x00000004 (HASH) 0x10000164 + 0x00000005 (STRTAB) 0x1000027c + 0x00000006 (SYMTAB) 0x100001ac + 0x0000000a (STRSZ) 387 (bytes) + 0x0000000b (SYMENT) 16 (bytes) + 0x00000015 (DEBUG) 0x0 + 0x00000003 (PLTGOT) 0x10010be4 + 0x00000002 (PLTRELSZ) 108 (bytes) + 0x00000014 (PLTREL) RELA + 0x00000017 (JMPREL) 0x10000494 + 0x70000000 (PPC_GOT) 0x10010bd8 + 0x00000007 (RELA) 0x1000047c + 0x00000008 (RELASZ) 132 (bytes) + 0x00000009 (RELAENT) 12 (bytes) + 0x6ffffffe (VERNEED) 0x1000041c + 0x6fffffff (VERNEEDNUM) 2 + 0x6ffffff0 (VERSYM) 0x10000400 + 0x00000000 (NULL) 0x0 + +Relocation section '.rela.dyn' at offset 0x47c contains 2 entries: + Offset Info Type Sym.Value Sym. Name + Addend +10010bd4 00000214 R_PPC_GLOB_DAT 00000000 __gmon_start__ + 0 +10010c0c 00000913 R_PPC_COPY 10010c0c _ZSt4cout + 0 + +Relocation section '.rela.plt' at offset 0x494 contains 9 entries: + Offset Info Type Sym.Value Sym. Name + Addend +10010be4 00000115 R_PPC_JMP_SLOT 100008e0 __cxa_atexit + 0 +10010be8 00000215 R_PPC_JMP_SLOT 00000000 __gmon_start__ + 0 +10010bec 00000415 R_PPC_JMP_SLOT 10000900 _ZNSt8ios_base4InitC1E + 0 +10010bf0 00000515 R_PPC_JMP_SLOT 10000910 __libc_start_main + 0 +10010bf4 00000615 R_PPC_JMP_SLOT 10000920 _ZNSt8ios_base4InitD1E + 0 +10010bf8 00000715 R_PPC_JMP_SLOT 10000930 _ZStlsISt11char_traits + 0 +10010bfc 00000a15 R_PPC_JMP_SLOT 10000940 _ZNSolsEPFRSoS_E + 0 +10010c00 00000b15 R_PPC_JMP_SLOT 10000950 _ZSt4endlIcSt11char_tr + 0 +10010c04 00000c15 R_PPC_JMP_SLOT 10000960 __gxx_personality_v0 + 0 + +There are no unwind sections in this file. + +Symbol table '.dynsym' contains 13 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 100008e0 144 FUNC GLOBAL DEFAULT UND __cxa_atexit@GLIBC_2.1.3 (2) + 2: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 3: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses + 4: 10000900 1452 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitC1Ev@GLIBCXX_3.4 (3) + 5: 10000910 232 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.0 (4) + 6: 10000920 204 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitD1Ev@GLIBCXX_3.4 (3) + 7: 10000930 164 FUNC GLOBAL DEFAULT UND _ZStlsISt11char_traitsIcE@GLIBCXX_3.4 (3) + 8: 10000a18 4 OBJECT GLOBAL DEFAULT 13 _IO_stdin_used + 9: 10010c0c 140 OBJECT GLOBAL DEFAULT 24 _ZSt4cout@GLIBCXX_3.4 (3) + 10: 10000940 36 FUNC GLOBAL DEFAULT UND _ZNSolsEPFRSoS_E@GLIBCXX_3.4 (3) + 11: 10000950 336 FUNC GLOBAL DEFAULT UND _ZSt4endlIcSt11char_trait@GLIBCXX_3.4 (3) + 12: 10000960 1420 FUNC GLOBAL DEFAULT UND __gxx_personality_v0@CXXABI_1.3 (5) + +Symbol table '.symtab' contains 80 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000134 0 SECTION LOCAL DEFAULT 1 + 2: 10000144 0 SECTION LOCAL DEFAULT 2 + 3: 10000164 0 SECTION LOCAL DEFAULT 3 + 4: 100001ac 0 SECTION LOCAL DEFAULT 4 + 5: 1000027c 0 SECTION LOCAL DEFAULT 5 + 6: 10000400 0 SECTION LOCAL DEFAULT 6 + 7: 1000041c 0 SECTION LOCAL DEFAULT 7 + 8: 1000047c 0 SECTION LOCAL DEFAULT 8 + 9: 10000494 0 SECTION LOCAL DEFAULT 9 + 10: 10000500 0 SECTION LOCAL DEFAULT 10 + 11: 10000550 0 SECTION LOCAL DEFAULT 11 + 12: 100009d0 0 SECTION LOCAL DEFAULT 12 + 13: 10000a08 0 SECTION LOCAL DEFAULT 13 + 14: 10000a24 0 SECTION LOCAL DEFAULT 14 + 15: 10000a48 0 SECTION LOCAL DEFAULT 15 + 16: 10010acc 0 SECTION LOCAL DEFAULT 16 + 17: 10010ad8 0 SECTION LOCAL DEFAULT 17 + 18: 10010ae0 0 SECTION LOCAL DEFAULT 18 + 19: 10010ae4 0 SECTION LOCAL DEFAULT 19 + 20: 10010aec 0 SECTION LOCAL DEFAULT 20 + 21: 10010bd4 0 SECTION LOCAL DEFAULT 21 + 22: 10010be4 0 SECTION LOCAL DEFAULT 22 + 23: 10010c08 0 SECTION LOCAL DEFAULT 23 + 24: 10010c0c 0 SECTION LOCAL DEFAULT 24 + 25: 00000000 0 SECTION LOCAL DEFAULT 25 + 26: 00000000 0 SECTION LOCAL DEFAULT 26 + 27: 00000000 0 SECTION LOCAL DEFAULT 27 + 28: 00000000 0 FILE LOCAL DEFAULT ABS init.c + 29: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 30: 10010acc 0 OBJECT LOCAL DEFAULT 16 __CTOR_LIST__ + 31: 10010ad8 0 OBJECT LOCAL DEFAULT 17 __DTOR_LIST__ + 32: 10010ae0 0 OBJECT LOCAL DEFAULT 18 __JCR_LIST__ + 33: 10000574 0 FUNC LOCAL DEFAULT 11 __do_global_dtors_aux + 34: 10010c98 1 OBJECT LOCAL DEFAULT 24 completed.6348 + 35: 10010c9c 4 OBJECT LOCAL DEFAULT 24 dtor_idx.6350 + 36: 1000061c 0 FUNC LOCAL DEFAULT 11 call___do_global_dtors_au + 37: 10000638 0 FUNC LOCAL DEFAULT 11 frame_dummy + 38: 10000680 0 FUNC LOCAL DEFAULT 11 call_frame_dummy + 39: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 40: 10010ad4 0 OBJECT LOCAL DEFAULT 16 __CTOR_END__ + 41: 10000ac8 0 OBJECT LOCAL DEFAULT 15 __FRAME_END__ + 42: 10010ae0 0 OBJECT LOCAL DEFAULT 18 __JCR_END__ + 43: 1000086c 0 FUNC LOCAL DEFAULT 11 __do_global_ctors_aux + 44: 100008bc 0 FUNC LOCAL DEFAULT 11 call___do_global_ctors_au + 45: 00000000 0 FILE LOCAL DEFAULT ABS test_ppc.cpp + 46: 100006f8 128 FUNC LOCAL DEFAULT 11 _Z41__static_initializati + 47: 10010ca0 1 OBJECT LOCAL DEFAULT 24 _ZStL8__ioinit + 48: 10000778 60 FUNC LOCAL DEFAULT 11 _GLOBAL__I_main + 49: 00000000 0 FILE LOCAL DEFAULT ABS elf-init.c + 50: 10010bd8 0 OBJECT LOCAL HIDDEN 21 _GLOBAL_OFFSET_TABLE_ + 51: 10010acc 0 NOTYPE LOCAL HIDDEN 16 __init_array_end + 52: 10010acc 0 NOTYPE LOCAL HIDDEN 16 __init_array_start + 53: 10010aec 0 OBJECT LOCAL HIDDEN 20 _DYNAMIC + 54: 10010c08 0 NOTYPE WEAK DEFAULT 23 data_start + 55: 100008e0 144 FUNC GLOBAL DEFAULT UND __cxa_atexit@@GLIBC_2.1.3 + 56: 100007b4 4 FUNC GLOBAL DEFAULT 11 __libc_csu_fini + 57: 10000550 36 FUNC GLOBAL DEFAULT 11 _start + 58: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 59: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses + 60: 100009d0 0 FUNC GLOBAL DEFAULT 12 _fini + 61: 10000900 1452 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitC1Ev@@ + 62: 10018c0c 0 NOTYPE GLOBAL DEFAULT 24 _SDA_BASE_ + 63: 10000910 232 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_ + 64: 10000920 204 FUNC GLOBAL DEFAULT UND _ZNSt8ios_base4InitD1Ev@@ + 65: 10000930 164 FUNC GLOBAL DEFAULT UND _ZStlsISt11char_traitsIcE + 66: 10000a18 4 OBJECT GLOBAL DEFAULT 13 _IO_stdin_used + 67: 10010c08 0 NOTYPE GLOBAL DEFAULT 23 __data_start + 68: 10010c0c 140 OBJECT GLOBAL DEFAULT 24 _ZSt4cout@@GLIBCXX_3.4 + 69: 10010c08 0 OBJECT GLOBAL HIDDEN 23 __dso_handle + 70: 10010adc 0 OBJECT GLOBAL HIDDEN 17 __DTOR_END__ + 71: 100007b8 180 FUNC GLOBAL DEFAULT 11 __libc_csu_init + 72: 10010c0c 0 NOTYPE GLOBAL DEFAULT ABS __bss_start + 73: 10010ca4 0 NOTYPE GLOBAL DEFAULT ABS _end + 74: 10000940 36 FUNC GLOBAL DEFAULT UND _ZNSolsEPFRSoS_E@@GLIBCXX + 75: 10000950 336 FUNC GLOBAL DEFAULT UND _ZSt4endlIcSt11char_trait + 76: 10010c0c 0 NOTYPE GLOBAL DEFAULT ABS _edata + 77: 10000960 1420 FUNC GLOBAL DEFAULT UND __gxx_personality_v0@@CXX + 78: 1000069c 92 FUNC GLOBAL DEFAULT 11 main + 79: 10000500 0 FUNC GLOBAL DEFAULT 10 _init + +Histogram for bucket list length (total of 3 buckets): + Length Number % of total Coverage + 0 0 ( 0.0%) + 1 0 ( 0.0%) 0.0% + 2 1 ( 33.3%) 16.7% + 3 0 ( 0.0%) 16.7% + 4 1 ( 33.3%) 50.0% + 5 0 ( 0.0%) 50.0% + 6 1 ( 33.3%) 100.0% + +Version symbols section '.gnu.version' contains 13 entries: + Addr: 0000000010000400 Offset: 0x000400 Link: 4 (.dynsym) + 000: 0 (*local*) 2 (GLIBC_2.1.3) 0 (*local*) 0 (*local*) + 004: 3 (GLIBCXX_3.4) 4 (GLIBC_2.0) 3 (GLIBCXX_3.4) 3 (GLIBCXX_3.4) + 008: 1 (*global*) 3 (GLIBCXX_3.4) 3 (GLIBCXX_3.4) 3 (GLIBCXX_3.4) + 00c: 5 (CXXABI_1.3) + +Version needs section '.gnu.version_r' contains 2 entries: + Addr: 0x000000001000041c Offset: 0x00041c Link: 5 (.dynstr) + 000000: Version: 1 File: libstdc++.so.6 Cnt: 2 + 0x0010: Name: CXXABI_1.3 Flags: none Version: 5 + 0x0020: Name: GLIBCXX_3.4 Flags: none Version: 3 + 0x0030: Version: 1 File: libc.so.6 Cnt: 2 + 0x0040: Name: GLIBC_2.0 Flags: none Version: 4 + 0x0050: Name: GLIBC_2.1.3 Flags: none Version: 2 + +Notes at offset 0x00000144 with length 0x00000020: + Owner Data size Description + GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag) +Attribute Section: gnu +File Attributes + Tag_GNU_Power_ABI_FP: Hard float + Tag_GNU_Power_ABI_Vector: Generic + Tag_GNU_Power_ABI_Struct_Return: Memory diff --git a/elf_examples/test_ppc_o.txt b/elf_examples/test_ppc_o.txt index cffbe17..d04ce3c 100644 --- a/elf_examples/test_ppc_o.txt +++ b/elf_examples/test_ppc_o.txt @@ -1,114 +1,114 @@ -ELF Header: - Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 - Class: ELF32 - Data: 2's complement, big endian - Version: 1 (current) - OS/ABI: UNIX - System V - ABI Version: 0 - Type: REL (Relocatable file) - Machine: PowerPC - Version: 0x1 - Entry point address: 0x0 - Start of program headers: 0 (bytes into file) - Start of section headers: 616 (bytes into file) - Flags: 0x0 - Size of this header: 52 (bytes) - Size of program headers: 0 (bytes) - Number of program headers: 0 - Size of section headers: 40 (bytes) - Number of section headers: 16 - Section header string table index: 13 - -Section Headers: - [Nr] Name Type Addr Off Size ES Flg Lk Inf Al - [ 0] NULL 00000000 000000 000000 00 0 0 0 - [ 1] .text PROGBITS 00000000 000034 000118 00 AX 0 0 4 - [ 2] .rela.text RELA 00000000 0007b8 0000d8 0c 14 1 4 - [ 3] .data PROGBITS 00000000 00014c 000000 00 WA 0 0 1 - [ 4] .bss NOBITS 00000000 00014c 000001 00 WA 0 0 1 - [ 5] .rodata PROGBITS 00000000 00014c 000006 00 A 0 0 4 - [ 6] .ctors PROGBITS 00000000 000154 000004 00 WA 0 0 4 - [ 7] .rela.ctors RELA 00000000 000890 00000c 0c 14 6 4 - [ 8] .eh_frame PROGBITS 00000000 000158 000058 00 A 0 0 4 - [ 9] .rela.eh_frame RELA 00000000 00089c 000024 0c 14 8 4 - [10] .comment PROGBITS 00000000 0001b0 000027 00 0 0 1 - [11] .note.GNU-stack PROGBITS 00000000 0001d7 000000 00 0 0 1 - [12] .gnu.attributes LOOS+ffffff5 00000000 0001d7 000014 00 0 0 1 - [13] .shstrtab STRTAB 00000000 0001eb 00007d 00 0 0 1 - [14] .symtab SYMTAB 00000000 0004e8 000180 10 15 14 4 - [15] .strtab STRTAB 00000000 000668 00014f 00 0 0 1 -Key to Flags: - W (write), A (alloc), X (execute), M (merge), S (strings) - I (info), L (link order), G (group), x (unknown) - O (extra OS processing required) o (OS specific), p (processor specific) - -There are no section groups in this file. - -There are no program headers in this file. - -Relocation section '.rela.text' at offset 0x7b8 contains 18 entries: - Offset Info Type Sym.Value Sym. Name + Addend -00000016 00000f06 R_PPC_ADDR16_HA 00000000 _ZSt4cout + 0 -0000001a 00000f04 R_PPC_ADDR16_LO 00000000 _ZSt4cout + 0 -0000001e 00000506 R_PPC_ADDR16_HA 00000000 .rodata + 0 -00000022 00000504 R_PPC_ADDR16_LO 00000000 .rodata + 0 -00000024 0000100a R_PPC_REL24 00000000 _ZStlsISt11char_traits + 0 -00000032 00001106 R_PPC_ADDR16_HA 00000000 _ZSt4endlIcSt11char_tr + 0 -00000036 00001104 R_PPC_ADDR16_LO 00000000 _ZSt4endlIcSt11char_tr + 0 -00000038 0000120a R_PPC_REL24 00000000 _ZNSolsEPFRSoS_E + 0 -0000009a 00000406 R_PPC_ADDR16_HA 00000000 .bss + 0 -0000009e 00000404 R_PPC_ADDR16_LO 00000000 .bss + 0 -000000a0 0000130a R_PPC_REL24 00000000 _ZNSt8ios_base4InitC1E + 0 -000000a6 00001406 R_PPC_ADDR16_HA 00000000 _ZNSt8ios_base4InitD1E + 0 -000000aa 00001404 R_PPC_ADDR16_LO 00000000 _ZNSt8ios_base4InitD1E + 0 -000000b2 00000406 R_PPC_ADDR16_HA 00000000 .bss + 0 -000000b6 00000404 R_PPC_ADDR16_LO 00000000 .bss + 0 -000000ba 00001506 R_PPC_ADDR16_HA 00000000 __dso_handle + 0 -000000be 00001504 R_PPC_ADDR16_LO 00000000 __dso_handle + 0 -000000c0 0000160a R_PPC_REL24 00000000 __cxa_atexit + 0 - -Relocation section '.rela.ctors' at offset 0x890 contains 1 entries: - Offset Info Type Sym.Value Sym. Name + Addend -00000000 00000201 R_PPC_ADDR32 00000000 .text + dc - -Relocation section '.rela.eh_frame' at offset 0x89c contains 3 entries: - Offset Info Type Sym.Value Sym. Name + Addend -00000011 00001701 R_PPC_ADDR32 00000000 __gxx_personality_v0 + 0 -00000020 00000201 R_PPC_ADDR32 00000000 .text + 0 -00000040 00000201 R_PPC_ADDR32 00000000 .text + 5c - -There are no unwind sections in this file. - -Symbol table '.symtab' contains 24 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 00000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000 0 FILE LOCAL DEFAULT ABS test_ppc.cpp - 2: 00000000 0 SECTION LOCAL DEFAULT 1 - 3: 00000000 0 SECTION LOCAL DEFAULT 3 - 4: 00000000 0 SECTION LOCAL DEFAULT 4 - 5: 00000000 0 SECTION LOCAL DEFAULT 5 - 6: 0000005c 128 FUNC LOCAL DEFAULT 1 _Z41__static_initializati - 7: 00000000 1 OBJECT LOCAL DEFAULT 4 _ZStL8__ioinit - 8: 000000dc 60 FUNC LOCAL DEFAULT 1 _GLOBAL__I_main - 9: 00000000 0 SECTION LOCAL DEFAULT 6 - 10: 00000000 0 SECTION LOCAL DEFAULT 8 - 11: 00000000 0 SECTION LOCAL DEFAULT 11 - 12: 00000000 0 SECTION LOCAL DEFAULT 10 - 13: 00000000 0 SECTION LOCAL DEFAULT 12 - 14: 00000000 92 FUNC GLOBAL DEFAULT 1 main - 15: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZSt4cout - 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZStlsISt11char_traitsIcE - 17: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZSt4endlIcSt11char_trait - 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZNSolsEPFRSoS_E - 19: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZNSt8ios_base4InitC1Ev - 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZNSt8ios_base4InitD1Ev - 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND __dso_handle - 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND __cxa_atexit - 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND __gxx_personality_v0 - -No version information found in this file. -Attribute Section: gnu -File Attributes - Tag_GNU_Power_ABI_FP: Hard float - Tag_GNU_Power_ABI_Vector: Generic - Tag_GNU_Power_ABI_Struct_Return: Memory +ELF Header: + Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, big endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: REL (Relocatable file) + Machine: PowerPC + Version: 0x1 + Entry point address: 0x0 + Start of program headers: 0 (bytes into file) + Start of section headers: 616 (bytes into file) + Flags: 0x0 + Size of this header: 52 (bytes) + Size of program headers: 0 (bytes) + Number of program headers: 0 + Size of section headers: 40 (bytes) + Number of section headers: 16 + Section header string table index: 13 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 000034 000118 00 AX 0 0 4 + [ 2] .rela.text RELA 00000000 0007b8 0000d8 0c 14 1 4 + [ 3] .data PROGBITS 00000000 00014c 000000 00 WA 0 0 1 + [ 4] .bss NOBITS 00000000 00014c 000001 00 WA 0 0 1 + [ 5] .rodata PROGBITS 00000000 00014c 000006 00 A 0 0 4 + [ 6] .ctors PROGBITS 00000000 000154 000004 00 WA 0 0 4 + [ 7] .rela.ctors RELA 00000000 000890 00000c 0c 14 6 4 + [ 8] .eh_frame PROGBITS 00000000 000158 000058 00 A 0 0 4 + [ 9] .rela.eh_frame RELA 00000000 00089c 000024 0c 14 8 4 + [10] .comment PROGBITS 00000000 0001b0 000027 00 0 0 1 + [11] .note.GNU-stack PROGBITS 00000000 0001d7 000000 00 0 0 1 + [12] .gnu.attributes LOOS+ffffff5 00000000 0001d7 000014 00 0 0 1 + [13] .shstrtab STRTAB 00000000 0001eb 00007d 00 0 0 1 + [14] .symtab SYMTAB 00000000 0004e8 000180 10 15 14 4 + [15] .strtab STRTAB 00000000 000668 00014f 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings) + I (info), L (link order), G (group), x (unknown) + O (extra OS processing required) o (OS specific), p (processor specific) + +There are no section groups in this file. + +There are no program headers in this file. + +Relocation section '.rela.text' at offset 0x7b8 contains 18 entries: + Offset Info Type Sym.Value Sym. Name + Addend +00000016 00000f06 R_PPC_ADDR16_HA 00000000 _ZSt4cout + 0 +0000001a 00000f04 R_PPC_ADDR16_LO 00000000 _ZSt4cout + 0 +0000001e 00000506 R_PPC_ADDR16_HA 00000000 .rodata + 0 +00000022 00000504 R_PPC_ADDR16_LO 00000000 .rodata + 0 +00000024 0000100a R_PPC_REL24 00000000 _ZStlsISt11char_traits + 0 +00000032 00001106 R_PPC_ADDR16_HA 00000000 _ZSt4endlIcSt11char_tr + 0 +00000036 00001104 R_PPC_ADDR16_LO 00000000 _ZSt4endlIcSt11char_tr + 0 +00000038 0000120a R_PPC_REL24 00000000 _ZNSolsEPFRSoS_E + 0 +0000009a 00000406 R_PPC_ADDR16_HA 00000000 .bss + 0 +0000009e 00000404 R_PPC_ADDR16_LO 00000000 .bss + 0 +000000a0 0000130a R_PPC_REL24 00000000 _ZNSt8ios_base4InitC1E + 0 +000000a6 00001406 R_PPC_ADDR16_HA 00000000 _ZNSt8ios_base4InitD1E + 0 +000000aa 00001404 R_PPC_ADDR16_LO 00000000 _ZNSt8ios_base4InitD1E + 0 +000000b2 00000406 R_PPC_ADDR16_HA 00000000 .bss + 0 +000000b6 00000404 R_PPC_ADDR16_LO 00000000 .bss + 0 +000000ba 00001506 R_PPC_ADDR16_HA 00000000 __dso_handle + 0 +000000be 00001504 R_PPC_ADDR16_LO 00000000 __dso_handle + 0 +000000c0 0000160a R_PPC_REL24 00000000 __cxa_atexit + 0 + +Relocation section '.rela.ctors' at offset 0x890 contains 1 entries: + Offset Info Type Sym.Value Sym. Name + Addend +00000000 00000201 R_PPC_ADDR32 00000000 .text + dc + +Relocation section '.rela.eh_frame' at offset 0x89c contains 3 entries: + Offset Info Type Sym.Value Sym. Name + Addend +00000011 00001701 R_PPC_ADDR32 00000000 __gxx_personality_v0 + 0 +00000020 00000201 R_PPC_ADDR32 00000000 .text + 0 +00000040 00000201 R_PPC_ADDR32 00000000 .text + 5c + +There are no unwind sections in this file. + +Symbol table '.symtab' contains 24 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 00000000 0 FILE LOCAL DEFAULT ABS test_ppc.cpp + 2: 00000000 0 SECTION LOCAL DEFAULT 1 + 3: 00000000 0 SECTION LOCAL DEFAULT 3 + 4: 00000000 0 SECTION LOCAL DEFAULT 4 + 5: 00000000 0 SECTION LOCAL DEFAULT 5 + 6: 0000005c 128 FUNC LOCAL DEFAULT 1 _Z41__static_initializati + 7: 00000000 1 OBJECT LOCAL DEFAULT 4 _ZStL8__ioinit + 8: 000000dc 60 FUNC LOCAL DEFAULT 1 _GLOBAL__I_main + 9: 00000000 0 SECTION LOCAL DEFAULT 6 + 10: 00000000 0 SECTION LOCAL DEFAULT 8 + 11: 00000000 0 SECTION LOCAL DEFAULT 11 + 12: 00000000 0 SECTION LOCAL DEFAULT 10 + 13: 00000000 0 SECTION LOCAL DEFAULT 12 + 14: 00000000 92 FUNC GLOBAL DEFAULT 1 main + 15: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZSt4cout + 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZStlsISt11char_traitsIcE + 17: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZSt4endlIcSt11char_trait + 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZNSolsEPFRSoS_E + 19: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZNSt8ios_base4InitC1Ev + 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZNSt8ios_base4InitD1Ev + 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND __dso_handle + 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND __cxa_atexit + 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND __gxx_personality_v0 + +No version information found in this file. +Attribute Section: gnu +File Attributes + Tag_GNU_Power_ABI_FP: Hard float + Tag_GNU_Power_ABI_Vector: Generic + Tag_GNU_Power_ABI_Struct_Return: Memory diff --git a/elf_examples/write_exe_i386_32_work_dump.txt b/elf_examples/write_exe_i386_32_work_dump.txt index ca06c1d..15edaf8 100644 --- a/elf_examples/write_exe_i386_32_work_dump.txt +++ b/elf_examples/write_exe_i386_32_work_dump.txt @@ -1,71 +1,71 @@ - -write_exe_i386_32_work: file format elf32-i386 -write_exe_i386_32_work -architecture: i386, flags 0x00000102: -EXEC_P, D_PAGED -start address 0x08048080 - -Program Header: - LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12 - filesz 0x0000009d memsz 0x0000009d flags r-x - LOAD off 0x000000a0 vaddr 0x080490a0 paddr 0x080490a0 align 2**12 - filesz 0x0000000e memsz 0x0000000e flags rw- - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .text 0000001d 08048080 08048080 00000080 2**4 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 0000000e 080490a0 080490a0 000000a0 2**2 - CONTENTS, ALLOC, LOAD, DATA - 2 .note 00000020 00000000 00000000 000000ae 2**0 - CONTENTS, READONLY -SYMBOL TABLE: -no symbols - - - -Disassembly of section .text: - -08048080 <.text>: - 8048080: b8 04 00 00 00 mov $0x4,%eax - 8048085: bb 01 00 00 00 mov $0x1,%ebx - 804808a: b9 a0 90 04 08 mov $0x80490a0,%ecx - 804808f: ba 0e 00 00 00 mov $0xe,%edx - 8048094: cd 80 int $0x80 - 8048096: b8 01 00 00 00 mov $0x1,%eax - 804809b: cd 80 int $0x80 - -Disassembly of section .data: - -080490a0 <.data>: - 80490a0: 48 dec %eax - 80490a1: 65 gs - 80490a2: 6c insb (%dx),%es:(%edi) - 80490a3: 6c insb (%dx),%es:(%edi) - 80490a4: 6f outsl %ds:(%esi),(%dx) - 80490a5: 2c 20 sub $0x20,%al - 80490a7: 57 push %edi - 80490a8: 6f outsl %ds:(%esi),(%dx) - 80490a9: 72 6c jb 0x8049117 - 80490ab: 64 21 0a and %ecx,%fs:(%edx) - -Disassembly of section .note: - -00000000 <.note>: - 0: 11 00 adc %eax,(%eax) - 2: 00 00 add %al,(%eax) - 4: 00 00 add %al,(%eax) - 6: 00 00 add %al,(%eax) - 8: 77 00 ja 0xa - a: 00 00 add %al,(%eax) - c: 43 inc %ebx - d: 72 65 jb 0x74 - f: 61 popa - 10: 74 65 je 0x77 - 12: 64 20 62 79 and %ah,%fs:0x79(%edx) - 16: 20 45 4c and %al,0x4c(%ebp) - 19: 46 inc %esi - 1a: 49 dec %ecx - 1b: 4f dec %edi - 1c: 00 00 add %al,(%eax) - ... + +write_exe_i386_32_work: file format elf32-i386 +write_exe_i386_32_work +architecture: i386, flags 0x00000102: +EXEC_P, D_PAGED +start address 0x08048080 + +Program Header: + LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12 + filesz 0x0000009d memsz 0x0000009d flags r-x + LOAD off 0x000000a0 vaddr 0x080490a0 paddr 0x080490a0 align 2**12 + filesz 0x0000000e memsz 0x0000000e flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .text 0000001d 08048080 08048080 00000080 2**4 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .data 0000000e 080490a0 080490a0 000000a0 2**2 + CONTENTS, ALLOC, LOAD, DATA + 2 .note 00000020 00000000 00000000 000000ae 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +no symbols + + + +Disassembly of section .text: + +08048080 <.text>: + 8048080: b8 04 00 00 00 mov $0x4,%eax + 8048085: bb 01 00 00 00 mov $0x1,%ebx + 804808a: b9 a0 90 04 08 mov $0x80490a0,%ecx + 804808f: ba 0e 00 00 00 mov $0xe,%edx + 8048094: cd 80 int $0x80 + 8048096: b8 01 00 00 00 mov $0x1,%eax + 804809b: cd 80 int $0x80 + +Disassembly of section .data: + +080490a0 <.data>: + 80490a0: 48 dec %eax + 80490a1: 65 gs + 80490a2: 6c insb (%dx),%es:(%edi) + 80490a3: 6c insb (%dx),%es:(%edi) + 80490a4: 6f outsl %ds:(%esi),(%dx) + 80490a5: 2c 20 sub $0x20,%al + 80490a7: 57 push %edi + 80490a8: 6f outsl %ds:(%esi),(%dx) + 80490a9: 72 6c jb 0x8049117 + 80490ab: 64 21 0a and %ecx,%fs:(%edx) + +Disassembly of section .note: + +00000000 <.note>: + 0: 11 00 adc %eax,(%eax) + 2: 00 00 add %al,(%eax) + 4: 00 00 add %al,(%eax) + 6: 00 00 add %al,(%eax) + 8: 77 00 ja 0xa + a: 00 00 add %al,(%eax) + c: 43 inc %ebx + d: 72 65 jb 0x74 + f: 61 popa + 10: 74 65 je 0x77 + 12: 64 20 62 79 and %ah,%fs:0x79(%edx) + 16: 20 45 4c and %al,0x4c(%ebp) + 19: 46 inc %esi + 1a: 49 dec %ecx + 1b: 4f dec %edi + 1c: 00 00 add %al,(%eax) + ... diff --git a/examples/RelocationTable/RelocationTable.cpp b/examples/RelocationTable/RelocationTable.cpp index 5257078..bf07701 100644 --- a/examples/RelocationTable/RelocationTable.cpp +++ b/examples/RelocationTable/RelocationTable.cpp @@ -1,56 +1,56 @@ -#include <cstdio> -#include <ELFIO.h> - -int main( int, char* argv[] ) -{ - // Create a ELFI reader - IELFI* pReader; - ELFIO::GetInstance()->CreateELFI( &pReader ); - - // Initialize it - char* filename = argv[1]; - pReader->Load( filename ); - - // Get .text relocation entry - // List all sections of the file - int i; - int nSecNo = pReader->GetSectionsNum(); - for ( i = 0; i < nSecNo; ++i ) { // For all sections - const IELFISection* pSec = pReader->GetSection( i ); - if ( SHT_REL != pSec->GetType() && SHT_RELA != pSec->GetType() ) { - pSec->Release(); - continue; - } - const IELFIRelocationTable* pRel = 0; - pReader->CreateSectionReader( IELFI::ELFI_RELOCATION, pSec, (void**)&pRel ); - - // Print all entries - Elf64_Addr offset; - Elf64_Addr symbolValue; - std::string symbolName; - unsigned char type; - Elf_Sxword addend; - Elf_Sxword calcValue; - Elf_Xword nNum = pRel->GetEntriesNum(); - if ( 0 < nNum ) { - std::printf( "\nSection name: %s\n", pSec->GetName().c_str() ); - std::printf( " Num Type Offset Addend Calc SymValue SymName\n" ); - for ( Elf_Xword i = 0; i < nNum; ++i ) { - pRel->GetEntry( i, offset, symbolValue, symbolName, - type, addend, calcValue ); - std::printf( "[%4llx] %02x %08llx %08llx %08llx %08llx %s\n", - i, type, offset, - addend, calcValue, - symbolValue, symbolName.c_str() ); - } - } - - pSec->Release(); - pRel->Release(); - } - - // Free resources - pReader->Release(); - - return 0; -} +#include <cstdio> +#include <ELFIO.h> + +int main( int, char* argv[] ) +{ + // Create a ELFI reader + IELFI* pReader; + ELFIO::GetInstance()->CreateELFI( &pReader ); + + // Initialize it + char* filename = argv[1]; + pReader->Load( filename ); + + // Get .text relocation entry + // List all sections of the file + int i; + int nSecNo = pReader->GetSectionsNum(); + for ( i = 0; i < nSecNo; ++i ) { // For all sections + const IELFISection* pSec = pReader->GetSection( i ); + if ( SHT_REL != pSec->GetType() && SHT_RELA != pSec->GetType() ) { + pSec->Release(); + continue; + } + const IELFIRelocationTable* pRel = 0; + pReader->CreateSectionReader( IELFI::ELFI_RELOCATION, pSec, (void**)&pRel ); + + // Print all entries + Elf64_Addr offset; + Elf64_Addr symbolValue; + std::string symbolName; + unsigned char type; + Elf_Sxword addend; + Elf_Sxword calcValue; + Elf_Xword nNum = pRel->GetEntriesNum(); + if ( 0 < nNum ) { + std::printf( "\nSection name: %s\n", pSec->GetName().c_str() ); + std::printf( " Num Type Offset Addend Calc SymValue SymName\n" ); + for ( Elf_Xword i = 0; i < nNum; ++i ) { + pRel->GetEntry( i, offset, symbolValue, symbolName, + type, addend, calcValue ); + std::printf( "[%4llx] %02x %08llx %08llx %08llx %08llx %s\n", + i, type, offset, + addend, calcValue, + symbolValue, symbolName.c_str() ); + } + } + + pSec->Release(); + pRel->Release(); + } + + // Free resources + pReader->Release(); + + return 0; +} diff --git a/examples/elfdump/Makefile.am b/examples/elfdump/Makefile.am index e42c3e6..8f85ad7 100644 --- a/examples/elfdump/Makefile.am +++ b/examples/elfdump/Makefile.am @@ -1,7 +1,7 @@ -INCLUDES = -I$(top_srcdir) - -bin_PROGRAMS = elfdump - -elfdump_SOURCES = elfdump.cpp - -EXTRA_DIST = ELFDump.vcxproj +INCLUDES = -I$(top_srcdir) + +bin_PROGRAMS = elfdump + +elfdump_SOURCES = elfdump.cpp + +EXTRA_DIST = ELFDump.vcxproj diff --git a/examples/elfdump/elfdump.cpp b/examples/elfdump/elfdump.cpp index bf985ee..9156585 100644 --- a/examples/elfdump/elfdump.cpp +++ b/examples/elfdump/elfdump.cpp @@ -1,56 +1,56 @@ -/* -ELFDump.cpp - Dump ELF file using ELFIO library. - -Copyright (C) 2001-2011 by Serge Lamikhov-Center - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#ifdef _MSC_VER - #define _SCL_SECURE_NO_WARNINGS - #define ELFIO_NO_INTTYPES -#endif - -#include <iostream> -#include <elfio/elfio_dump.hpp> - -using namespace ELFIO; - -int main( int argc, char** argv ) -{ - if ( argc != 2 ) { - printf( "Usage: ELFDump <file_name>\n" ); - return 1; - } - - elfio reader; - - if ( !reader.load( argv[1] ) ) { - printf( "File %s is not found or it is not an ELF file\n", argv[1] ); - return 1; - } - - dump::header ( std::cout, reader ); - dump::section_headers( std::cout, reader ); - dump::segment_headers( std::cout, reader ); - dump::symbol_tables ( std::cout, reader ); - dump::notes ( std::cout, reader ); - - return 0; -} +/* +ELFDump.cpp - Dump ELF file using ELFIO library. + +Copyright (C) 2001-2011 by Serge Lamikhov-Center + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#ifdef _MSC_VER + #define _SCL_SECURE_NO_WARNINGS + #define ELFIO_NO_INTTYPES +#endif + +#include <iostream> +#include <elfio/elfio_dump.hpp> + +using namespace ELFIO; + +int main( int argc, char** argv ) +{ + if ( argc != 2 ) { + printf( "Usage: ELFDump <file_name>\n" ); + return 1; + } + + elfio reader; + + if ( !reader.load( argv[1] ) ) { + printf( "File %s is not found or it is not an ELF file\n", argv[1] ); + return 1; + } + + dump::header ( std::cout, reader ); + dump::section_headers( std::cout, reader ); + dump::segment_headers( std::cout, reader ); + dump::symbol_tables ( std::cout, reader ); + dump::notes ( std::cout, reader ); + + return 0; +} diff --git a/examples/tutorial/Makefile.am b/examples/tutorial/Makefile.am index 925285c..ee68732 100644 --- a/examples/tutorial/Makefile.am +++ b/examples/tutorial/Makefile.am @@ -1,5 +1,5 @@ -INCLUDES = -I$(top_srcdir) - -bin_PROGRAMS = tutorial - -tutorial_SOURCES = tutorial.cpp +INCLUDES = -I$(top_srcdir) + +bin_PROGRAMS = tutorial + +tutorial_SOURCES = tutorial.cpp diff --git a/examples/tutorial/tutorial.cpp b/examples/tutorial/tutorial.cpp index 1e62cde..fecba46 100644 --- a/examples/tutorial/tutorial.cpp +++ b/examples/tutorial/tutorial.cpp @@ -1,90 +1,90 @@ -#include <iostream> -#include <elfio/elfio.hpp> - -using namespace ELFIO; - -int main( int argc, char** argv ) -{ - if ( argc != 2 ) { - std::cout << "Usage: tutorial <elf_file>" << std::endl; - return 1; - } - - // Create an elfio reader - elfio reader; - - // Load ELF data - if ( !reader.load( argv[1] ) ) { - std::cout << "Can't find or process ELF file " << argv[1] << std::endl; - return 2; - } - - // Print ELF file properties - std::cout << "ELF file class : "; - if ( reader.get_class() == ELFCLASS32 ) - std::cout << "ELF32" << std::endl; - else - std::cout << "ELF64" << std::endl; - - std::cout << "ELF file encoding : "; - if ( reader.get_encoding() == ELFDATA2LSB ) - std::cout << "Little endian" << std::endl; - else - std::cout << "Big endian" << std::endl; - - // Print ELF file sections info - Elf_Half sec_num = reader.sections.size(); - std::cout << "Number of sections: " << sec_num << std::endl; - for ( int i = 0; i < sec_num; ++i ) { - section* psec = reader.sections[i]; - std::cout << " [" << i << "] " - << psec->get_name() - << "\t" - << psec->get_size() - << std::endl; - // Access to section's data - // const char* p = reader.sections[i]->get_data() - } - - // Print ELF file segments info - Elf_Half seg_num = reader.segments.size(); - std::cout << "Number of segments: " << seg_num << std::endl; - for ( int i = 0; i < seg_num; ++i ) { - const segment* pseg = reader.segments[i]; - std::cout << " [" << i << "] 0x" << std::hex - << pseg->get_flags() - << "\t0x" - << pseg->get_virtual_address() - << "\t0x" - << pseg->get_file_size() - << "\t0x" - << pseg->get_memory_size() - << std::endl; - // Access to segments's data - // const char* p = reader.segments[i]->get_data() - } - - for ( int i = 0; i < sec_num; ++i ) { - section* psec = reader.sections[i]; - // Check section type - if ( psec->get_type() == SHT_SYMTAB ) { - const symbol_section_accessor symbols( reader, psec ); - for ( unsigned int j = 0; j < symbols.get_symbols_num(); ++j ) { - std::string name; - Elf64_Addr value; - Elf_Xword size; - unsigned char bind; - unsigned char type; - Elf_Half section_index; - unsigned char other; - - // Read symbol properties - symbols.get_symbol( j, name, value, size, bind, - type, section_index, other ); - std::cout << j << " " << name << " " << value << std::endl; - } - } - } - - return 0; -} +#include <iostream> +#include <elfio/elfio.hpp> + +using namespace ELFIO; + +int main( int argc, char** argv ) +{ + if ( argc != 2 ) { + std::cout << "Usage: tutorial <elf_file>" << std::endl; + return 1; + } + + // Create an elfio reader + elfio reader; + + // Load ELF data + if ( !reader.load( argv[1] ) ) { + std::cout << "Can't find or process ELF file " << argv[1] << std::endl; + return 2; + } + + // Print ELF file properties + std::cout << "ELF file class : "; + if ( reader.get_class() == ELFCLASS32 ) + std::cout << "ELF32" << std::endl; + else + std::cout << "ELF64" << std::endl; + + std::cout << "ELF file encoding : "; + if ( reader.get_encoding() == ELFDATA2LSB ) + std::cout << "Little endian" << std::endl; + else + std::cout << "Big endian" << std::endl; + + // Print ELF file sections info + Elf_Half sec_num = reader.sections.size(); + std::cout << "Number of sections: " << sec_num << std::endl; + for ( int i = 0; i < sec_num; ++i ) { + section* psec = reader.sections[i]; + std::cout << " [" << i << "] " + << psec->get_name() + << "\t" + << psec->get_size() + << std::endl; + // Access to section's data + // const char* p = reader.sections[i]->get_data() + } + + // Print ELF file segments info + Elf_Half seg_num = reader.segments.size(); + std::cout << "Number of segments: " << seg_num << std::endl; + for ( int i = 0; i < seg_num; ++i ) { + const segment* pseg = reader.segments[i]; + std::cout << " [" << i << "] 0x" << std::hex + << pseg->get_flags() + << "\t0x" + << pseg->get_virtual_address() + << "\t0x" + << pseg->get_file_size() + << "\t0x" + << pseg->get_memory_size() + << std::endl; + // Access to segments's data + // const char* p = reader.segments[i]->get_data() + } + + for ( int i = 0; i < sec_num; ++i ) { + section* psec = reader.sections[i]; + // Check section type + if ( psec->get_type() == SHT_SYMTAB ) { + const symbol_section_accessor symbols( reader, psec ); + for ( unsigned int j = 0; j < symbols.get_symbols_num(); ++j ) { + std::string name; + Elf64_Addr value; + Elf_Xword size; + unsigned char bind; + unsigned char type; + Elf_Half section_index; + unsigned char other; + + // Read symbol properties + symbols.get_symbol( j, name, value, size, bind, + type, section_index, other ); + std::cout << j << " " << name << " " << value << std::endl; + } + } + } + + return 0; +} diff --git a/examples/writer/Makefile.am b/examples/writer/Makefile.am index 4751166..4e9b639 100644 --- a/examples/writer/Makefile.am +++ b/examples/writer/Makefile.am @@ -1,5 +1,5 @@ -INCLUDES = -I$(top_srcdir) - -bin_PROGRAMS = writer - -writer_SOURCES = writer.cpp +INCLUDES = -I$(top_srcdir) + +bin_PROGRAMS = writer + +writer_SOURCES = writer.cpp diff --git a/install-sh b/install-sh index 6781b98..16c1607 100755 --- a/install-sh +++ b/install-sh @@ -1,520 +1,520 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2009-04-28.21; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2009-04-28.21; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/missing b/missing index 28055d2..23c9d2e 100755 --- a/missing +++ b/missing @@ -1,376 +1,376 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2009-04-28.21; # UTC - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. - -Send bug reports to <bug-automake@gnu.org>." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - -esac - -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; - - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te*) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2009-04-28.21; # UTC + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. + +Send bug reports to <bug-automake@gnu.org>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + tar*) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar*) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/prepare_cygwin.sh b/prepare_cygwin.sh index f470431..bbd6234 100755 --- a/prepare_cygwin.sh +++ b/prepare_cygwin.sh @@ -1,20 +1,20 @@ -ELFIOVER='ELFIO-1.0.3' -BUILDVER='1' -FULLVER=${ELFIOVER}-${BUILDVER} - -mkdir $1 -cp ${ELFIOVER}.tar.gz $1 -cd $1 -tar -xzf ${ELFIOVER}.tar.gz -cp ../cygwin/${FULLVER}.sh . -mkdir ${ELFIOVER}/CYGWIN-PATCHES -cp ../cygwin/CYGWIN-PATCHES/* ${ELFIOVER}/CYGWIN-PATCHES -./${FULLVER}.sh mkdirs -./${FULLVER}.sh spkg - -cd .. -mkdir $2 -cp $1/${FULLVER}-src.tar.bz2 $2 -cd $2 -tar -xjf ${FULLVER}-src.tar.bz2 -./${FULLVER}.sh all +ELFIOVER='ELFIO-1.0.3' +BUILDVER='1' +FULLVER=${ELFIOVER}-${BUILDVER} + +mkdir $1 +cp ${ELFIOVER}.tar.gz $1 +cd $1 +tar -xzf ${ELFIOVER}.tar.gz +cp ../cygwin/${FULLVER}.sh . +mkdir ${ELFIOVER}/CYGWIN-PATCHES +cp ../cygwin/CYGWIN-PATCHES/* ${ELFIOVER}/CYGWIN-PATCHES +./${FULLVER}.sh mkdirs +./${FULLVER}.sh spkg + +cd .. +mkdir $2 +cp $1/${FULLVER}-src.tar.bz2 $2 +cd $2 +tar -xjf ${FULLVER}-src.tar.bz2 +./${FULLVER}.sh all -- GitLab