File: COMPILERS.txt

package info (click to toggle)
mpdecimal 2.4.2-2
  • links: PTS
  • area: main
  • in suites: buster
  • size: 8,916 kB
  • sloc: ansic: 16,862; sh: 3,320; lisp: 502; makefile: 298; python: 85; asm: 18
file content (121 lines) | stat: -rw-r--r-- 3,300 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121


Like many arbitrary precision libraries, libmpdec frequently exposes toolchain
bugs.  Be sure to run all tests!


gcc
===

   gcc should work on all platforms and generates the fastest code of all
   tested compilers.  The configure script contains workarounds for these
   two toolchain bugs (which should have been fixed in all Linux distribu-
   tions by now):

      1) In December 2010 it was discovered that some gcc versions
         miscompile the inline assembly of the PPRO configuration.
         See also:

            http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491
            http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html

         The bug is only triggered in bignum arithmetic and will fail
         instantly with an assert in crt.c. The current configure script
         automatically detects the bug and enables a workaround
         (-fno-ipa-pure-const).

      2) gcc-4.6 exposes a bug in glibc, which had incorrect _FORTIFY_SOURCE
         wrappers for memmove and bcopy:

            http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html

         If an unpatched glibc is detected, the current configure script
         automatically enables a workaround (-U_FORTIFY_SOURCE).


clang
=====

   There are no known issues.  Tested on FreeBSD with clang 3.0.


icc
===

   Intel compilers >= 11.0 should work.  Previous versions had problems with
   GNU inline assembly.  Tested on Linux with version 12.0.


Visual Studio
=============

   There are no known issues.  Tests have been run with VC 2008 and VC 2010.


suncc
=====

   x86/x64
   -------

     studio12u1 had a bug resulting in incorrect array offset calculations.
     According to Sun this was fixed in sunstudio12.1.  Tests run successfully
     here with sunstudio12.3.


   SPARC
   -----

      64-bit build
      ~~~~~~~~~~~~

         With the following flags the tests pass.  Note that at least a subset
         of these flags is absolutely required.  See also:

            http://bugs.python.org/issue15963

            ./configure CFLAGS="-v -fsimple=0 -m64 -mt=yes -xbuiltin -xhwcprof \
                   -xF -xarch=native -xchip=native -fma=fused -g -xO5 -xlibmil \
                   -xlibmopt -xmemalign=8s -xregs=frameptr -xtarget=native \
                   -xbuiltin=%all -library=sunperf" \
                        CPPFLAGS="-IInclude" OPT="" \
                        LDFLAGS="-v  -fsimple=0 -m64 -mt=yes -xbuiltin -xhwcprof \
                   -xF -xarch=native -xchip=native -fma=fused -g -xO5 -xlibmil \
                   -xlibmopt -xmemalign=8s -xbuiltin=%all -xregs=frameptr \
                   -xtarget=native -library=sunperf" \
                        CC=/opt/solarisstudio12.3/bin/cc

      32-bit build
      ~~~~~~~~~~~~

         The 32-bit build appears to work without any special flags.


xlc
===

   64-bit build
   ------------

      Instructions to build libmpdec.a:

         1) ./configure CC=xlc_r AR="ar -X64" CFLAGS="-q64 -qmaxmem=70000" LDFLAGS="-q64"

         2) Edit libmpdec/Makefile and remove $(LIBSHARED) from the default target.

         3) Edit tests/Makefile and remove runtest_shared and runtest_alloc_shared
            from the default target.

         4) make

         5) make check


CompCert
========

   Versions >= 1.8.2 work.