~ubuntu-branches/ubuntu/vivid/atlas/vivid

« back to all changes in this revision

Viewing changes to .pc/18_alpha.diff/CONFIG/include/atlconf.h

  • Committer: Package Import Robot
  • Author(s): Sébastien Villemot, Sylvestre Ledru, Sébastien Villemot
  • Date: 2013-06-11 15:58:16 UTC
  • mfrom: (1.1.4) (25 sid)
  • mto: This revision was merged to the branch mainline in revision 26.
  • Revision ID: package-import@ubuntu.com-20130611155816-8xeeiziu1iml040c
Tags: 3.10.1-1
[ Sylvestre Ledru ]
* New upstream release (Closes: #609287)

[ Sébastien Villemot ]
* Provide architectural defaults (i.e. precomputed timings) for all
  release archs (except armel and mips for the time being, due to slow
  porterboxes). This will make the package build much faster and should
  eliminate transient build failures due to excessive variance in the
  timings.
* Move symlinks for lib{cblas,f77blas,atlas,lapack_atlas} out of the
  libblas.so.3 alternative and make them always present, so that
  software relying on these libs do not break when another alternative
  is selected for BLAS
* ATLAS now has improved ARM support with native asm constructs. This required
  the following tunes:
  + armel-is-v4t.diff: new patch, prevents FTBFS on armel; otherwise,
    ATLAS uses asm constructs too recent for the platform (armel is only v4t)
  + debian/rules: on armhf, define the ATL_ARM_HARDFP flag; otherwise the asm
    constructs use the soft-float ABI for passing floating points
  + on armhf, ensure that -mfloat-abi=softfp and -mcpu=vfpv3 flags are never
    used; this is implemented via a patch (armhf.diff) and by the use of fixed
    archdefs
* The generic package is now built without multi-threading, because otherwise
  the package fails to build on some single-processor machines (this required
  the introduction of a patch: fix-non-threaded-build.diff). As a side effect,
  the build of the custom package gracefully handles non-threaded
  builds. (Closes: #602524)
* Add libblas.a as slave in the libblas.so alternative (Closes: #701921)
* Add symlinks for lib{f77blas,atlas}.a in /usr/lib (Closes: #666203)
* Modify shlibs file of libatlas3-base, such that packages using
  libblas/liblapack depend on any BLAS/LAPACK alternative, while packages
  depending on ATLAS-specific libraries (e.g. libatlas.so) depend specifically
  on libatlas3-base.
* corei1.diff: remove patch, applied upstream
* Use my @debian.org email address
* Remove obsolete DM-Upload-Allowed flag
* Switch VCS to git
* Remove Conflicts/Replaces against pre-squeeze packages
* libatlas-base-dev now provides libblas.so, as libblas-dev
* No longer use -Wa,--noexecstack in CFLAGS, it makes the package FTBFS
* Do not use POWER3 arch for powerpcspe port (Closes: #701068)
* Bump to debhelper compat level 9
* README.Debian: mention that devscripts is needed to compile the custom
  package (Closes: #697431)
* Bump Standards-Version to 3.9.4. As a consequence, add Built-Using
  fields because the package embeds stuff from liblapack-pic

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef ATLCONF_H
 
2
   #define ATLCONF_H
 
3
 
 
4
#include <stdio.h>
 
5
#include <stdlib.h>
 
6
#include <string.h>
 
7
#include <assert.h>
 
8
 
 
9
#define NOS 13
 
10
static char *osnam[NOS] =
 
11
   {"UNKNOWN", "Linux", "SunOS", "SunOS4", "OSF1", "IRIX", "AIX",
 
12
    "Win9x", "WinNT", "Win64", "HPUX", "FreeBSD", "OSX"};
 
13
enum OSTYPE {OSOther=0, OSLinux, OSSunOS, OSSunOS4, OSOSF1, OSIRIX, OSAIX,
 
14
             OSWin9x, OSWinNT, OSWin64, OSHPUX, OSFreeBSD, OSOSX};
 
15
#define OSIsWin(OS_) ( ((OS_) == OSWinNT) || ((OS_) == OSWin9x) || \
 
16
                       ((OS_) == OSWin64) )
 
17
 
 
18
enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS,
 
19
              AFARM, AFS390};
 
20
 
 
21
#define NMACH 47
 
22
static char *machnam[NMACH] =
 
23
   {"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5",
 
24
    "POWER6", "POWER7", "IBMz9", "IBMz10", "IBMz196",
 
25
    "x86x87", "x86SSE1", "x86SSE2", "x86SSE3",
 
26
    "P5", "P5MMX", "PPRO", "PII", "PIII", "PM", "CoreSolo",
 
27
    "CoreDuo", "Core2Solo", "Core2", "Corei1", "Corei2", "Atom", "P4", "P4E",
 
28
    "Efficeon", "K7", "HAMMER", "AMD64K10h", "AMDDOZER", "UNKNOWNx86",
 
29
    "IA64Itan", "IA64Itan2",
 
30
    "USI", "USII", "USIII", "USIV", "UST2", "UnknownUS",
 
31
    "MIPSR1xK", "MIPSICE9", "ARMv7"};
 
32
enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5,
 
33
               IbmPwr6, IbmPwr7,
 
34
               IbmZ9, IbmZ10, IbmZ196,  /* s390(x) in Linux */
 
35
               x86x87, x86SSE1, x86SSE2, x86SSE3, /* generic targets */
 
36
               IntP5, IntP5MMX, IntPPRO, IntPII, IntPIII, IntPM, IntCoreS,
 
37
               IntCoreDuo, IntCore2Solo, IntCore2, IntCorei1, IntCorei2,
 
38
               IntAtom, IntP4, IntP4E, TMEff,
 
39
               AmdAthlon, AmdHammer, Amd64K10h, AmdDozer, x86X,
 
40
               IA64Itan, IA64Itan2,
 
41
               SunUSI, SunUSII, SunUSIII, SunUSIV, SunUST2, SunUSX,
 
42
               MIPSR1xK, /* includes R10K, R12K, R14K, R16K */
 
43
               MIPSICE9,  /* SiCortex ICE9 -- like MIPS5K */
 
44
               ARMv7      /* includes Cortex A8, A9 */
 
45
               };
 
46
#define MachIsX86(mach_) \
 
47
   ( (mach_) >= x86x87 && (mach_) <= x86X )
 
48
#define MachIsIA64(mach_) \
 
49
   ( (mach_) >= IA64Itan && (mach_) <= IA64Itan2 )
 
50
#define MachIsUS(mach_) \
 
51
   ( (mach_) >= SunUSI && (mach_) <= SunUSX )
 
52
#ifdef __mips__
 
53
   #define MachIsMIPS(mach_) \
 
54
      ( (__mips__) || (mach_) >= MIPSR1xK && (mach_) <= MIPSICE9 )
 
55
#else
 
56
   #define MachIsMIPS(mach_) \
 
57
      ( (mach_) >= MIPSR1xK && (mach_) <= MIPSICE9 )
 
58
#endif
 
59
#define MachIsPPC(mach_) \
 
60
   ( (mach_) >= PPCG4 && (mach_) <= PPCG5 )
 
61
#define MachIsARM(mach_) \
 
62
   ( (mach_) == ARMv7 )
 
63
#define MachIsS390(mach_) \
 
64
   ( (mach_) >= IbmZ9 && (mach_) <= IbmZ196 )
 
65
#ifdef __hppa__
 
66
#define MachIsHPPA(mach_) \
 
67
   ( __hppa__ )
 
68
#else
 
69
#define MachIsHPPA(mach_) \
 
70
   ( 0 )
 
71
#endif
 
72
 
 
73
static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
 
74
static char *f2c_intstr[5] =
 
75
       {"UNKNOWN", "F77_INTEGER=int", "F77_INTEGER=long",
 
76
        "F77_INTEGER=\"long long\"", "F77_INTEGER=short"};
 
77
static char *f2c_strstr[5]=
 
78
       {"UNKNOWN", "SunStyle", "CrayStyle", "StructVal", "StructPtr"};
 
79
 
 
80
enum F2CNAME {f2c_NamErr=0, f2c_Add_, f2c_Add__, f2c_NoChange, f2c_UpCase};
 
81
enum F2CINT {f2c_IntErr=0, FintCint, FintClong, FintClonglong, FintCshort};
 
82
enum F2CSTRING {f2c_StrErr=0, fstrSun, fstrCray, fstrStructVal, fstrStructPtr};
 
83
 
 
84
#define NISA 11
 
85
static char *ISAXNAM[NISA] =
 
86
   {"", "VSX", "AltiVec", "AVXMAC", "AVXFMA4", "AVX", "SSE3", "SSE2", "SSE1",
 
87
    "3DNow", "NEON"};
 
88
enum ISAEXT
 
89
   {ISA_None=0, ISA_VSX, ISA_AV, ISA_AVXMAC, ISA_AVXFMA4, ISA_AVX,
 
90
    ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow, ISA_NEON};
 
91
 
 
92
#define NASMD 9
 
93
enum ASMDIA
 
94
   {ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc,
 
95
    gas_mips, gas_arm, gas_s390};
 
96
static char *ASMNAM[NASMD] =
 
97
   {"",     "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC",
 
98
    "GAS_MIPS", "GAS_ARM", "GAS_S390"};
 
99
 
 
100
/*
 
101
 * Used for archinfo probes (can pack in bitfield)
 
102
 */
 
103
enum WHATPROBE{Parch=1, P64=2, Pncpu=4, Pverb=8, Pncache=16, PCacheSize=32,
 
104
               PMhz=64, Pthrottle=128};
 
105
 
 
106
#define NARDEF 4
 
107
enum ARDEF{ADsk=0, ADdk, ADsm, ADdm};  /* m = matmul kernel, k = non-mm kern */
 
108
/*
 
109
 * Used for all the compilers ATLAS needs
 
110
 */
 
111
#define NCOMP 8
 
112
static char *COMPNAME[NCOMP]={"ICC","SMC","DMC","SKC","DKC","XCC","GCC","F77"};
 
113
#define ICC_ 0   /* Compiles non-computation routines, and all I/O */
 
114
#define SMC_ 1   /* single prec matmul compiler */
 
115
#define DMC_ 2   /* double prec matmul compiler */
 
116
#define SKC_ 3   /* single prec computation compiler (non-mm kernels) */
 
117
#define DKC_ 4   /* double prec computation compiler */
 
118
#define XCC_ 5   /* Compiler for frontend of cross-compilation */
 
119
#define GCC_ 6
 
120
#define F77_ 7   /* Valid fixed-format Fortran77 compiler */
 
121
 
 
122
typedef struct CompNode COMPNODE;
 
123
struct CompNode
 
124
{
 
125
   int priority;              /* priority of this definition */
 
126
   int comps[1];              /* bitfield: (1<<ICC)|...|(1<<F77) */
 
127
   int OS[(NOS+31)/32];       /* bitfield for OS */
 
128
   int arch[(NMACH+31)/32];   /* bitfields for architecture */
 
129
   char *comp, *flags;        /* compiler & flags as strings */
 
130
   COMPNODE *next;
 
131
};
 
132
#include "atlconf_misc.h"
 
133
 
 
134
#endif