summaryrefslogtreecommitdiff
path: root/config/libc/newlib.in
blob: eea89da5ed9c9f52a213703ffb00b026a95e83e6 (plain)
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# newlib options

## depends on BARE_METAL
##
## select LIBC_SUPPORT_THREADS_NONE
## select CC_CORE_PASSES_NEEDED if CANADIAN
## select CC_CORE_PASS_2_NEEDED if ! CANADIAN
##
## help Newlib is a C library intended for use on embedded systems. It is a
## help conglomeration of several library parts, all under free software
## help licenses that make them easily usable on embedded products. Newlib
## help is only available in source form. It can be compiled for a wide
## help array of processors, and will usually work on any architecture with
## help the addition of a few low-level routines.

config CC_NEWLIB_SHOW_LINARO
    bool
    prompt "Show Linaro versions"
    help
      Linaro is maintaining some advanced/more stable/experimental versions
      of newlib, especially for the ARM architecture.
      
      Those versions have not been blessed by the newlib comunity (nor have they
      been cursed either!), but they look to be pretty much stable, and even
      more stable than the upstream versions. YMMV...
      
      If you do not know what this Linaro stuff is, then simply say 'n' here,
      and rest in peace. OTOH, if you know what you are doing, you will be
      able to use and enjoy :-) the Linaro versions by saying 'y' here.
      
      Linaro: http://www.linaro.org/

choice
    bool
    prompt "newlib version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW

config LIBC_NEWLIB_LINARO_V_2_2_0
    bool
    prompt "Linaro 2.2.0-2015.01"
    depends on CC_NEWLIB_SHOW_LINARO
    select LIBC_NEWLIB_2_2

config LIBC_NEWLIB_V_2_2_0
    bool
    prompt "2.2.0"
    select LIBC_NEWLIB_2_2

config LIBC_NEWLIB_LINARO_V_2_1_0
    bool
    prompt "Linaro 2.1.0-2014.09"
    depends on CC_NEWLIB_SHOW_LINARO
    select LIBC_NEWLIB_2_1

config LIBC_NEWLIB_V_2_1_0
    bool
    prompt "2.1.0"
    select LIBC_NEWLIB_2_1

config LIBC_NEWLIB_V_2_0_0
    bool
    prompt "2.0.0"
    select LIBC_NEWLIB_2_0

config LIBC_NEWLIB_V_1_20_0
    bool
    prompt "1.20.0"

config LIBC_NEWLIB_V_1_19_0
    bool
    prompt "1.19.0"

config LIBC_NEWLIB_V_1_18_0
    bool
    prompt "1.18.0"

config LIBC_NEWLIB_V_1_17_0
    bool
    prompt "1.17.0"

endchoice

config LIBC_NEWLIB_CUSTOM
    bool
    prompt "Custom newlib"
    depends on EXPERIMENTAL
    help
    The choosen library version shall be not downloaded. Instead use
    a custom location to get the source.

config LIBC_NEWLIB_2_2
    bool
    select LIBC_NEWLIB_2_2_or_later

config LIBC_NEWLIB_2_1
    bool
    select LIBC_NEWLIB_2_1_or_later

config LIBC_NEWLIB_2_0
    bool
    select LIBC_NEWLIB_2_0_or_later

config LIBC_NEWLIB_2_2_or_later
    bool
    select LIBC_NEWLIB_2_1_or_later

config LIBC_NEWLIB_2_1_or_later
    bool
    select LIBC_NEWLIB_2_0_or_later

# maybe older versions of newlib will support it too, but this
# needs to be checked
config LIBC_NEWLIB_2_0_or_later
    bool
    select LIBC_PROVIDES_CXA_ATEXIT

if LIBC_NEWLIB_CUSTOM

config LIBC_NEWLIB_CUSTOM_LOCATION
    string
    prompt "Full path to custom newlib source"
    default ""
    help
      Enter the path to the directory (or tarball) of your source for newlib,
      or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/newlib

endif # LIBC_NEWLIB_CUSTOM

config LIBC_VERSION
    string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
    default "linaro-2.2.0-2015.01" if LIBC_NEWLIB_LINARO_V_2_2_0
    default "2.2.0" if LIBC_NEWLIB_V_2_2_0
    default "linaro-2.1.0-2014.09" if LIBC_NEWLIB_LINARO_V_2_1_0
    default "2.1.0" if LIBC_NEWLIB_V_2_1_0
    default "2.0.0" if LIBC_NEWLIB_V_2_0_0
    default "1.20.0" if LIBC_NEWLIB_V_1_20_0
    default "1.19.0" if LIBC_NEWLIB_V_1_19_0
    default "1.18.0" if LIBC_NEWLIB_V_1_18_0
    default "1.17.0" if LIBC_NEWLIB_V_1_17_0
    help
      Enter the tag you want to use.
      Leave empty to use the 'head' of the repository.

config LIBC_NEWLIB_TARGET_CFLAGS
    string
    prompt "Target CFLAGS for newlib"
    default ""
    help
      Used to add specific options when compiling the target libraries
      (eg. -ffunction-sections -fdata-sections), which can't be defined
      in global TARGET_CFLAGS, because they shall be not used for the
      gcc target libraries.
      Note:  Both TARGET_CFLAGS and LIBC_NEWLIB_TARGET_CFLAGS are used
             to compile the libraries.
 
      Leave blank if you don't know better.