1  ----------------------------------------------------------
2  Notes on how to update libm based on Intel's libm releases
3  ----------------------------------------------------------
4
5This source code in this directory is currently based on Intel libm
6v2.1 as available from:
7
8  http://www.intel.com/software/products/opensource/libraries/num.htm
9
10To ease importing, fix some bugs, and simplify integration into libc,
11it is also necessary to apply the patch at:
12
13  ftp://ftp.hpl.hp.com/pub/linux-ia64/intel-libm-041228.diff.gz
14
15The expectation is that Intel will integrate most if not all of these
16changes into future releases of libm, so this patching step can
17hopefully be omitted in the future.
18
19Once the patched libm sources are extracted in a directory $LIBM, they
20can be imported into the libc source tree at $LIBC with the following
21step:
22
23	$ cd $LIBC/src/sysdep/ia64/fpu
24	$ ./import_intel_libm $LIBM
25
26This should produce a number of "Importing..." messages, without
27showing any errors.
28
29At this point, you should be able to build glibc in the usual fashion.
30We assume you do this in directory $OBJ.  Once the build has
31completed, run "make check" to verify that all (math) checks succeed.
32If these checks succeed, you should also run the following commands to
33verify that the new libm doesn't pollute the name-space and has proper
34size-info for the data objects:
35
36	$ cd $LIBC/src/sysdep/ia64/fpu
37	$ import_check $OBJ/math/
38
39There should be no (unexpected) errors reported by this script.
40
41As an optional step, you may also want to confirm that the new libm
42exports the exact same global symbols as the old one.
43
44If you want to see the changes introduced by the "import_intel_libm"
45script, you can run the commands:
46
47	$ cd $LIBC/src/sysdep/ia64/fpu
48	$ import_diffs
49
50That's it.
51