summaryrefslogtreecommitdiff
path: root/config/libc/newlib.in
blob: 40203f7804bc248c1aa17645b5229b1d4c9eb888 (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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# 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 LIBC_NEWLIB_CUSTOM
    bool
    prompt "Custom newlib"
    depends on EXPERIMENTAL
    select LIBC_NEWLIB_2_2_or_later
    help
      The choosen newlib version shall be not downloaded. Instead use
      a custom location to get the source.

if LIBC_NEWLIB_CUSTOM

config LIBC_NEWLIB_CUSTOM_LOCATION
    string
    prompt "Full path to custom newlib source"
    help
      Enter the path to the directory or tarball of your source for newlib.

      If the path is a tarball, it should extract to: <name>-<version>/
      where the name is this component, newlib, and the version is set
      below in the custom version string.

config LIBC_NEWLIB_CUSTOM_VERSION
    string
    prompt "Custom NEWLIB version"
    help
      Enter the version number for your custom newlib.

config LIBC_VERSION
    string
    default LIBC_NEWLIB_CUSTOM_VERSION

endif # LIBC_NEWLIB_CUSTOM

if ! LIBC_NEWLIB_CUSTOM

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

endif # ! LIBC_NEWLIB_CUSTOM

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_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.

endif # ! LIBC_NEWLIB_CUSTOM

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.