diff options
104 files changed, 3694 insertions, 0 deletions
diff --git a/COPYING.MIT b/COPYING.MIT new file mode 100644 index 0000000..89de354 --- /dev/null +++ b/COPYING.MIT | |||
@@ -0,0 +1,17 @@ | |||
1 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
2 | of this software and associated documentation files (the "Software"), to deal | ||
3 | in the Software without restriction, including without limitation the rights | ||
4 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
5 | copies of the Software, and to permit persons to whom the Software is | ||
6 | furnished to do so, subject to the following conditions: | ||
7 | |||
8 | The above copyright notice and this permission notice shall be included in | ||
9 | all copies or substantial portions of the Software. | ||
10 | |||
11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
12 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
13 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
14 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
15 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
16 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
17 | THE SOFTWARE. | ||
@@ -0,0 +1,64 @@ | |||
1 | meta-enea-base | ||
2 | =================================================================== | ||
3 | |||
4 | This layer is intended to be a central point for defining distros, | ||
5 | images, recipes, appends or other userspace customizations common | ||
6 | to all Enea Linux releases. | ||
7 | |||
8 | |||
9 | Dependencies | ||
10 | ============ | ||
11 | |||
12 | This layer depends on: | ||
13 | |||
14 | URI: git://git.openembedded.org/bitbake | ||
15 | branch: dizzy | ||
16 | revision: HEAD | ||
17 | |||
18 | URI: git://git.yoctoproject.org/poky | ||
19 | branch: dizzy | ||
20 | revision: HEAD | ||
21 | |||
22 | |||
23 | Source code | ||
24 | =========== | ||
25 | |||
26 | git://git.enea.com/linux/meta-enea-base.git | ||
27 | |||
28 | |||
29 | Patches | ||
30 | ======= | ||
31 | |||
32 | Please submit any patches against the enea-base layer to the | ||
33 | linux-maintainers mailing list: linux-maintainers@enea.com | ||
34 | |||
35 | Maintainers: Enea Linux Team <linux-maintainers@enea.com> | ||
36 | |||
37 | |||
38 | Table | ||
39 | ================= | ||
40 | |||
41 | I. Adding the enea-base layer to your build | ||
42 | II. Misc | ||
43 | |||
44 | |||
45 | I. Adding the enea-base layer to your build | ||
46 | ================================================= | ||
47 | |||
48 | In order to use this layer, you need to make the build system aware of | ||
49 | it. | ||
50 | |||
51 | Assuming the enea-base layer exists at the top-level of your | ||
52 | yocto build tree, you can add it to the build system by adding the | ||
53 | location of the enea-base layer to bblayers.conf, along with any | ||
54 | other layers needed. e.g.: | ||
55 | |||
56 | |||
57 | BBLAYERS ?= " \ | ||
58 | /path/to/yocto/meta \ | ||
59 | /path/to/yocto/meta-yocto \ | ||
60 | /path/to/yocto/meta-enea-base \ | ||
61 | " | ||
62 | |||
63 | II. Misc | ||
64 | ======== | ||
diff --git a/conf/distro/enea.conf b/conf/distro/enea.conf new file mode 100644 index 0000000..da5ddd5 --- /dev/null +++ b/conf/distro/enea.conf | |||
@@ -0,0 +1,28 @@ | |||
1 | require conf/distro/poky.conf | ||
2 | DISTRO = "enea" | ||
3 | DISTRO_NAME = "Enea Linux" | ||
4 | DISTRO_VERSION_MAJOR = "5.0" | ||
5 | DISTRO_VERSION_MINOR ??= "" | ||
6 | DISTRO_VERSION = "${DISTRO_VERSION_MAJOR}${DISTRO_VERSION_MINOR}" | ||
7 | |||
8 | |||
9 | SDK_VENDOR = "-eneasdk" | ||
10 | SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}" | ||
11 | |||
12 | MAINTAINER = "ENEA <linux-maintainers@enea.com>" | ||
13 | |||
14 | TARGET_VENDOR = "-enea" | ||
15 | |||
16 | PRSERV_HOST ?= "localhost:0" | ||
17 | |||
18 | SANITY_TESTED_DISTROS += "\ | ||
19 | CentOS-6.1 \n \ | ||
20 | RedHatEnterpriseServer-6.1 \n \ | ||
21 | RedHatEnterpriseServer-6.4 \n \ | ||
22 | Ubuntu-12.10 \n \ | ||
23 | " | ||
24 | |||
25 | CONNECTIVITY_CHECK_URIS = " \ | ||
26 | http://linux.enea.com" | ||
27 | |||
28 | BB_DANGLINGAPPENDS_WARNONLY ?= "1" | ||
diff --git a/conf/layer.conf b/conf/layer.conf new file mode 100644 index 0000000..48ee535 --- /dev/null +++ b/conf/layer.conf | |||
@@ -0,0 +1,12 @@ | |||
1 | # We have a conf and classes directory, add to BBPATH | ||
2 | BBPATH .= ":${LAYERDIR}" | ||
3 | |||
4 | # We have recipes-* directories, add to BBFILES | ||
5 | BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ | ||
6 | ${LAYERDIR}/images/* \ | ||
7 | ${LAYERDIR}/packagegroups/* \ | ||
8 | ${LAYERDIR}/recipes-*/*/*.bbappend" | ||
9 | |||
10 | BBFILE_COLLECTIONS += "enea-base" | ||
11 | BBFILE_PATTERN_enea-base = "^${LAYERDIR}/" | ||
12 | BBFILE_PRIORITY_enea-base = "5" | ||
diff --git a/images/enea-image-base.bb b/images/enea-image-base.bb new file mode 100644 index 0000000..41eba70 --- /dev/null +++ b/images/enea-image-base.bb | |||
@@ -0,0 +1,5 @@ | |||
1 | DESCRIPTION = "console only image that fully suport target HW" | ||
2 | require enea-image-common.inc | ||
3 | |||
4 | IMAGE_ROOTFS_EXTRA_SPACE = "131072" | ||
5 | IMAGE_OVERHEAD_FACTOR = "2" | ||
diff --git a/images/enea-image-common.inc b/images/enea-image-common.inc new file mode 100644 index 0000000..2f063eb --- /dev/null +++ b/images/enea-image-common.inc | |||
@@ -0,0 +1,11 @@ | |||
1 | IMAGE_FEATURES += "ssh-server-dropbear package-management" | ||
2 | |||
3 | IMAGE_INSTALL = " \ | ||
4 | packagegroup-enea-core-boot \ | ||
5 | " | ||
6 | |||
7 | IMAGE_LINGUAS = "" | ||
8 | |||
9 | LICENSE = "MIT" | ||
10 | |||
11 | inherit core-image | ||
diff --git a/images/enea-image-featured.bb b/images/enea-image-featured.bb new file mode 100644 index 0000000..2d22237 --- /dev/null +++ b/images/enea-image-featured.bb | |||
@@ -0,0 +1,76 @@ | |||
1 | DESCRIPTION = "Full featured image with full target support" | ||
2 | require enea-image-common.inc | ||
3 | |||
4 | IMAGE_FEATURES[validitems] += "read-only-rootfs empty-root-password allow-empty-password post-install-logging " | ||
5 | |||
6 | IMAGE_FEATURES += " \ | ||
7 | dbg-pkgs \ | ||
8 | debug-tweaks \ | ||
9 | dev-pkgs \ | ||
10 | doc-pkgs \ | ||
11 | ptest-pkgs \ | ||
12 | splash \ | ||
13 | staticdev-pkgs \ | ||
14 | eclipse-debug \ | ||
15 | hwcodecs \ | ||
16 | nfs-server \ | ||
17 | qt4-pkgs \ | ||
18 | ssh-server-openssh \ | ||
19 | tools-debug \ | ||
20 | tools-profile \ | ||
21 | tools-sdk \ | ||
22 | tools-testapps \ | ||
23 | x11 \ | ||
24 | x11-base" | ||
25 | |||
26 | IMAGE_INSTALL = " \ | ||
27 | packagegroup-base \ | ||
28 | packagegroup-enea-debug \ | ||
29 | packagegroup-enea-rt-tools \ | ||
30 | packagegroup-enea-ptest \ | ||
31 | packagegroup-enea-ddt \ | ||
32 | packagegroup-enea-sys \ | ||
33 | packagegroup-enea-bench \ | ||
34 | ${ROOTFS_PKGMANAGE_BOOTSTRAP} \ | ||
35 | beecrypt \ | ||
36 | binutils \ | ||
37 | chkconfig \ | ||
38 | cracklib \ | ||
39 | curl \ | ||
40 | dhcp-client \ | ||
41 | eventlog \ | ||
42 | file \ | ||
43 | findutils \ | ||
44 | freetype \ | ||
45 | fuse \ | ||
46 | gawk \ | ||
47 | gcc \ | ||
48 | gnutls \ | ||
49 | grep \ | ||
50 | gzip \ | ||
51 | icu \ | ||
52 | insserv \ | ||
53 | kbd \ | ||
54 | kernel-modules \ | ||
55 | libgcrypt \ | ||
56 | libgpg-error \ | ||
57 | libtasn1 \ | ||
58 | lsb \ | ||
59 | lsbinitscripts \ | ||
60 | mingetty \ | ||
61 | openssh \ | ||
62 | ossp-uuid \ | ||
63 | perf \ | ||
64 | pkgconfig \ | ||
65 | procps \ | ||
66 | psmisc \ | ||
67 | rpm \ | ||
68 | rt-bmark \ | ||
69 | tar \ | ||
70 | tipcutils \ | ||
71 | udev-extraconf \ | ||
72 | zip \ | ||
73 | " | ||
74 | |||
75 | IMAGE_ROOTFS_EXTRA_SPACE = "1048576" | ||
76 | IMAGE_OVERHEAD_FACTOR = "1.5" | ||
diff --git a/recipes-connectivity/connman/connman_1.25.bbappend b/recipes-connectivity/connman/connman_1.25.bbappend new file mode 100644 index 0000000..4f72ec3 --- /dev/null +++ b/recipes-connectivity/connman/connman_1.25.bbappend | |||
@@ -0,0 +1,5 @@ | |||
1 | FILESEXTRAPATHS_prepend := "${THISDIR}/files:" | ||
2 | |||
3 | SRC_URI += "file://0001-added-noipconfig-option.patch \ | ||
4 | file://connman \ | ||
5 | " | ||
diff --git a/recipes-connectivity/connman/files/0001-added-noipconfig-option.patch b/recipes-connectivity/connman/files/0001-added-noipconfig-option.patch new file mode 100644 index 0000000..d86b778 --- /dev/null +++ b/recipes-connectivity/connman/files/0001-added-noipconfig-option.patch | |||
@@ -0,0 +1,353 @@ | |||
1 | Disabling interface index for desired interfaces so that all methods dealing | ||
2 | with those indexes (ifup, ifdown, new route, new gateway, etc.) will exit | ||
3 | immediately. This is obtained through a new option called "noipconfig". | ||
4 | Helpful when dealing with NFS dhcp method like: | ||
5 | root=/dev/nfs rw nfsroot=172.21.3.8:/unix/enea_linux_rootfs/user/p2041rdb \ | ||
6 | ip=dhcp console=ttyS0,115200 memmap=16M$0xf7000000 \ | ||
7 | mem=4080M max_addr=f6ffffff | ||
8 | |||
9 | This ports the https://www.cvg.de/people/ensc/0001-added-noipconfig-option.patch | ||
10 | change to connman_1.25. In http://patchwork.openembedded.org/patch/57539/ that | ||
11 | change is considered too intrusive and specific to be upstreamed. | ||
12 | |||
13 | Signed-off-by: George Nita <george.nita@enea.com> | ||
14 | Upstream-Status: Not Applicable | ||
15 | |||
16 | |||
17 | diff --git a/src/connman.h b/src/connman.h | ||
18 | index db6461f..8f4f4d0 100644 | ||
19 | --- a/src/connman.h | ||
20 | +++ b/src/connman.h | ||
21 | @@ -544,7 +544,8 @@ void __connman_technology_notify_regdom_by_device(struct connman_device *device, | ||
22 | |||
23 | #include <connman/device.h> | ||
24 | |||
25 | -int __connman_device_init(const char *device, const char *nodevice); | ||
26 | +int __connman_device_init(const char *device, const char *nodevice, | ||
27 | + const char *noipconfig); | ||
28 | void __connman_device_cleanup(void); | ||
29 | |||
30 | void __connman_device_list(DBusMessageIter *iter, void *user_data); | ||
31 | diff --git a/src/device.c b/src/device.c | ||
32 | index c0683ab..6582c51 100644 | ||
33 | --- a/src/device.c | ||
34 | +++ b/src/device.c | ||
35 | @@ -37,6 +37,7 @@ | ||
36 | static GSList *device_list = NULL; | ||
37 | static gchar **device_filter = NULL; | ||
38 | static gchar **nodevice_filter = NULL; | ||
39 | +static gchar **noipconfig_filter = NULL; | ||
40 | |||
41 | enum connman_pending_type { | ||
42 | PENDING_NONE = 0, | ||
43 | @@ -1314,6 +1315,20 @@ done: | ||
44 | return device; | ||
45 | } | ||
46 | |||
47 | +static bool __connman_device_noipconfig(const char *devname) | ||
48 | +{ | ||
49 | + char **pattern; | ||
50 | + | ||
51 | + for (pattern = noipconfig_filter; *pattern; pattern++) { | ||
52 | + if (g_pattern_match_simple(*pattern, devname) == TRUE) { | ||
53 | + DBG("do not configure device %s", devname); | ||
54 | + return TRUE; | ||
55 | + } | ||
56 | + } | ||
57 | + | ||
58 | + return FALSE; | ||
59 | +} | ||
60 | + | ||
61 | bool __connman_device_isfiltered(const char *devname) | ||
62 | { | ||
63 | char **pattern; | ||
64 | @@ -1403,6 +1418,9 @@ static void cleanup_devices(void) | ||
65 | if (index < 0) | ||
66 | continue; | ||
67 | |||
68 | + if (__connman_device_noipconfig(interfaces[i])) | ||
69 | + __connman_inet_disable_index(index); | ||
70 | + | ||
71 | if (!__connman_inet_get_address_netmask(index, &sin_addr, | ||
72 | &sin_mask)) { | ||
73 | char *address = g_strdup(inet_ntoa(sin_addr.sin_addr)); | ||
74 | @@ -1435,7 +1453,8 @@ static void cleanup_devices(void) | ||
75 | g_strfreev(interfaces); | ||
76 | } | ||
77 | |||
78 | -int __connman_device_init(const char *device, const char *nodevice) | ||
79 | +int __connman_device_init(const char *device, const char *nodevice, | ||
80 | + const char *noipconfig) | ||
81 | { | ||
82 | DBG(""); | ||
83 | |||
84 | @@ -1445,6 +1464,9 @@ int __connman_device_init(const char *device, const char *nodevice) | ||
85 | if (nodevice) | ||
86 | nodevice_filter = g_strsplit(nodevice, ",", -1); | ||
87 | |||
88 | + if (noipconfig != NULL) | ||
89 | + noipconfig_filter = g_strsplit(noipconfig, ",", -1); | ||
90 | + | ||
91 | cleanup_devices(); | ||
92 | |||
93 | return 0; | ||
94 | diff --git a/src/inet.c b/src/inet.c | ||
95 | index fb37143..d1f2c2f 100644 | ||
96 | --- a/src/inet.c | ||
97 | +++ b/src/inet.c | ||
98 | @@ -55,6 +55,45 @@ | ||
99 | ((struct rtattr *) (((uint8_t*) (nmsg)) + \ | ||
100 | NLMSG_ALIGN((nmsg)->nlmsg_len))) | ||
101 | |||
102 | +static GHashTable *g_disabled_indices; | ||
103 | + | ||
104 | +static guint g_intptr_hash(gconstpointer p) | ||
105 | +{ | ||
106 | + uintptr_t v = (uintptr_t)p; | ||
107 | + return g_int_hash(&v); | ||
108 | +} | ||
109 | + | ||
110 | +static gboolean g_intptr_equal(gconstpointer p1, | ||
111 | + gconstpointer p2) | ||
112 | +{ | ||
113 | + uintptr_t v1 = (uintptr_t)p1; | ||
114 | + uintptr_t v2 = (uintptr_t)p2; | ||
115 | + | ||
116 | + return g_int_equal(&v1, &v2); | ||
117 | +} | ||
118 | + | ||
119 | +void __connman_inet_disable_index(int index) | ||
120 | +{ | ||
121 | + connman_info("disabling interface #%d for ipconfig", index); | ||
122 | + | ||
123 | + if (g_disabled_indices == NULL) | ||
124 | + g_disabled_indices = g_hash_table_new_full(g_intptr_hash, | ||
125 | + g_intptr_equal, | ||
126 | + NULL, NULL); | ||
127 | + | ||
128 | + g_hash_table_add(g_disabled_indices, (void *)index); | ||
129 | +} | ||
130 | + | ||
131 | +static bool __connman_inet_is_disabled_index(int index) | ||
132 | +{ | ||
133 | + bool rc; | ||
134 | + | ||
135 | + rc = (g_disabled_indices != NULL && | ||
136 | + g_hash_table_contains(g_disabled_indices, (void *)index)); | ||
137 | + | ||
138 | + return rc; | ||
139 | +} | ||
140 | + | ||
141 | int __connman_inet_rtnl_addattr_l(struct nlmsghdr *n, size_t max_length, | ||
142 | int type, const void *data, size_t data_length) | ||
143 | { | ||
144 | @@ -98,6 +137,11 @@ int __connman_inet_modify_address(int cmd, int flags, | ||
145 | "prefixlen %hhu broadcast %s", cmd, flags, index, family, | ||
146 | address, peer, prefixlen, broadcast); | ||
147 | |||
148 | + if (__connman_inet_is_disabled_index(index)) { | ||
149 | + connman_info("index disabled; skipping %s", __func__); | ||
150 | + return 0; | ||
151 | + } | ||
152 | + | ||
153 | if (!address) | ||
154 | return -EINVAL; | ||
155 | |||
156 | @@ -275,6 +319,11 @@ int connman_inet_ifup(int index) | ||
157 | struct ifreq ifr; | ||
158 | int sk, err; | ||
159 | |||
160 | + if (__connman_inet_is_disabled_index(index)) { | ||
161 | + connman_info("index disabled; skipping %s", __func__); | ||
162 | + return 0; | ||
163 | + } | ||
164 | + | ||
165 | sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
166 | if (sk < 0) | ||
167 | return -errno; | ||
168 | @@ -318,6 +367,11 @@ int connman_inet_ifdown(int index) | ||
169 | struct sockaddr_in *addr; | ||
170 | int sk, err; | ||
171 | |||
172 | + if (__connman_inet_is_disabled_index(index)) { | ||
173 | + connman_info("index disabled; skipping %s", __func__); | ||
174 | + return 0; | ||
175 | + } | ||
176 | + | ||
177 | sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
178 | if (sk < 0) | ||
179 | return -errno; | ||
180 | @@ -519,6 +573,11 @@ int connman_inet_add_network_route(int index, const char *host, | ||
181 | DBG("index %d host %s gateway %s netmask %s", index, | ||
182 | host, gateway, netmask); | ||
183 | |||
184 | + if (__connman_inet_is_disabled_index(index)) { | ||
185 | + connman_info("index disabled; skipping %s", __func__); | ||
186 | + return 0; | ||
187 | + } | ||
188 | + | ||
189 | sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
190 | if (sk < 0) { | ||
191 | err = -errno; | ||
192 | @@ -589,6 +648,11 @@ int connman_inet_del_network_route(int index, const char *host) | ||
193 | |||
194 | DBG("index %d host %s", index, host); | ||
195 | |||
196 | + if (__connman_inet_is_disabled_index(index)) { | ||
197 | + connman_info("index disabled; skipping %s", __func__); | ||
198 | + return 0; | ||
199 | + } | ||
200 | + | ||
201 | sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
202 | if (sk < 0) { | ||
203 | err = -errno; | ||
204 | @@ -637,6 +701,11 @@ int connman_inet_del_ipv6_network_route(int index, const char *host, | ||
205 | |||
206 | DBG("index %d host %s", index, host); | ||
207 | |||
208 | + if (__connman_inet_is_disabled_index(index)) { | ||
209 | + connman_info("index disabled; skipping %s", __func__); | ||
210 | + return 0; | ||
211 | + } | ||
212 | + | ||
213 | if (!host) | ||
214 | return -EINVAL; | ||
215 | |||
216 | @@ -687,6 +756,11 @@ int connman_inet_add_ipv6_network_route(int index, const char *host, | ||
217 | |||
218 | DBG("index %d host %s gateway %s", index, host, gateway); | ||
219 | |||
220 | + if (__connman_inet_is_disabled_index(index)) { | ||
221 | + connman_info("index disabled; skipping %s", __func__); | ||
222 | + return 0; | ||
223 | + } | ||
224 | + | ||
225 | if (!host) | ||
226 | return -EINVAL; | ||
227 | |||
228 | @@ -741,6 +815,11 @@ int connman_inet_clear_ipv6_gateway_address(int index, const char *gateway) | ||
229 | |||
230 | DBG("index %d gateway %s", index, gateway); | ||
231 | |||
232 | + if (__connman_inet_is_disabled_index(index)) { | ||
233 | + connman_info("index disabled; skipping clear_ipv6_gateway operation"); | ||
234 | + return 0; | ||
235 | + } | ||
236 | + | ||
237 | if (!gateway) | ||
238 | return -EINVAL; | ||
239 | |||
240 | @@ -784,6 +863,11 @@ int connman_inet_set_gateway_interface(int index) | ||
241 | |||
242 | DBG("index %d", index); | ||
243 | |||
244 | + if (__connman_inet_is_disabled_index(index)) { | ||
245 | + connman_info("index disabled; skipping %s", __func__); | ||
246 | + return 0; | ||
247 | + } | ||
248 | + | ||
249 | sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
250 | if (sk < 0) { | ||
251 | err = -errno; | ||
252 | @@ -837,6 +921,11 @@ int connman_inet_set_ipv6_gateway_interface(int index) | ||
253 | |||
254 | DBG("index %d", index); | ||
255 | |||
256 | + if (__connman_inet_is_disabled_index(index)) { | ||
257 | + connman_info("index disabled; skipping %s", __func__); | ||
258 | + return 0; | ||
259 | + } | ||
260 | + | ||
261 | sk = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
262 | if (sk < 0) { | ||
263 | err = -errno; | ||
264 | @@ -889,6 +978,11 @@ int connman_inet_clear_gateway_address(int index, const char *gateway) | ||
265 | |||
266 | DBG("index %d gateway %s", index, gateway); | ||
267 | |||
268 | + if (__connman_inet_is_disabled_index(index)) { | ||
269 | + connman_info("index disabled; skipping %s", __func__); | ||
270 | + return 0; | ||
271 | + } | ||
272 | + | ||
273 | sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
274 | if (sk < 0) { | ||
275 | err = -errno; | ||
276 | @@ -946,6 +1040,11 @@ int connman_inet_clear_gateway_interface(int index) | ||
277 | |||
278 | DBG("index %d", index); | ||
279 | |||
280 | + if (__connman_inet_is_disabled_index(index)) { | ||
281 | + connman_info("index disabled; skipping %s", __func__); | ||
282 | + return 0; | ||
283 | + } | ||
284 | + | ||
285 | sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
286 | if (sk < 0) { | ||
287 | err = -errno; | ||
288 | @@ -999,6 +1098,11 @@ int connman_inet_clear_ipv6_gateway_interface(int index) | ||
289 | |||
290 | DBG("index %d", index); | ||
291 | |||
292 | + if (__connman_inet_is_disabled_index(index)) { | ||
293 | + connman_info("index disabled; skipping %s", __func__); | ||
294 | + return 0; | ||
295 | + } | ||
296 | + | ||
297 | sk = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
298 | if (sk < 0) { | ||
299 | err = -errno; | ||
300 | @@ -1059,6 +1163,11 @@ bool connman_inet_compare_subnet(int index, const char *host) | ||
301 | return -1; | ||
302 | host_addr = _host_addr.s_addr; | ||
303 | |||
304 | + if (__connman_inet_is_disabled_index(index)) { | ||
305 | + connman_info("index disabled; skipping %s", __func__); | ||
306 | + return 0; | ||
307 | + } | ||
308 | + | ||
309 | sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
310 | if (sk < 0) | ||
311 | return false; | ||
312 | @@ -1159,6 +1268,11 @@ int connman_inet_set_mtu(int index, int mtu) | ||
313 | struct ifreq ifr; | ||
314 | int sk, err; | ||
315 | |||
316 | + if (__connman_inet_is_disabled_index(index)) { | ||
317 | + connman_info("index disabled; skipping %s", __func__); | ||
318 | + return 0; | ||
319 | + } | ||
320 | + | ||
321 | sk = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); | ||
322 | if (sk < 0) | ||
323 | return sk; | ||
324 | diff --git a/src/main.c b/src/main.c | ||
325 | index 7cf6c9a..e06f25c 100644 | ||
326 | --- a/src/main.c | ||
327 | +++ b/src/main.c | ||
328 | @@ -453,6 +453,7 @@ static gchar *option_debug = NULL; | ||
329 | static gchar *option_device = NULL; | ||
330 | static gchar *option_plugin = NULL; | ||
331 | static gchar *option_nodevice = NULL; | ||
332 | +static gchar *option_noipconfig = NULL; | ||
333 | static gchar *option_noplugin = NULL; | ||
334 | static gchar *option_wifi = NULL; | ||
335 | static gboolean option_detach = TRUE; | ||
336 | @@ -482,6 +483,8 @@ static GOptionEntry options[] = { | ||
337 | "Specify networking device or interface", "DEV" }, | ||
338 | { "nodevice", 'I', 0, G_OPTION_ARG_STRING, &option_nodevice, | ||
339 | "Specify networking interface to ignore", "DEV" }, | ||
340 | + { "noipconfig", 0, 0, G_OPTION_ARG_STRING, &option_noipconfig, | ||
341 | + "Specify networking interface which shall not be configured", "DEV" }, | ||
342 | { "plugin", 'p', 0, G_OPTION_ARG_STRING, &option_plugin, | ||
343 | "Specify plugins to load", "NAME,..." }, | ||
344 | { "noplugin", 'P', 0, G_OPTION_ARG_STRING, &option_noplugin, | ||
345 | @@ -648,7 +651,7 @@ int main(int argc, char *argv[]) | ||
346 | __connman_provider_init(); | ||
347 | __connman_network_init(); | ||
348 | __connman_config_init(); | ||
349 | - __connman_device_init(option_device, option_nodevice); | ||
350 | + __connman_device_init(option_device, option_nodevice, option_noipconfig); | ||
351 | |||
352 | __connman_ippool_init(); | ||
353 | __connman_iptables_init(); | ||
diff --git a/recipes-connectivity/connman/files/connman b/recipes-connectivity/connman/files/connman new file mode 100644 index 0000000..a7b7c7b --- /dev/null +++ b/recipes-connectivity/connman/files/connman | |||
@@ -0,0 +1,83 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | DAEMON=/usr/sbin/connmand | ||
4 | PIDFILE=/var/run/connmand.pid | ||
5 | DESC="Connection Manager" | ||
6 | |||
7 | if [ -f /etc/default/connman ] ; then | ||
8 | . /etc/default/connman | ||
9 | fi | ||
10 | |||
11 | set -e | ||
12 | |||
13 | nfsroot=0 | ||
14 | |||
15 | exec 9<&0 < /proc/mounts | ||
16 | while read dev mtpt fstype rest; do | ||
17 | if test $mtpt = "/" ; then | ||
18 | case $fstype in | ||
19 | nfs | nfs4) | ||
20 | nfsroot=1 | ||
21 | break | ||
22 | ;; | ||
23 | *) | ||
24 | ;; | ||
25 | esac | ||
26 | fi | ||
27 | done | ||
28 | |||
29 | do_start() { | ||
30 | EXTRA_PARAM="" | ||
31 | if test $nfsroot -eq 1 ; then | ||
32 | NET_DEVS=`cat /proc/net/dev | sed -ne 's/^\([a-zA-Z0-9 ]*\):.*$/\1/p'` | ||
33 | NET_ADDR=`cat /proc/cmdline | sed -ne 's/^.*ip=\([^ :]*\).*$/\1/p'` | ||
34 | |||
35 | if [ ! -z "$NET_ADDR" ]; then | ||
36 | if [ "$NET_ADDR" = dhcp ]; then | ||
37 | ethn=`ifconfig | grep "^eth" | sed -e "s/\(eth[0-9]\)\(.*\)/\1/"` | ||
38 | if [ ! -z "$ethn" ]; then | ||
39 | EXTRA_PARAM="--noipconfig $ethn" | ||
40 | fi | ||
41 | else | ||
42 | for i in $NET_DEVS; do | ||
43 | ADDR=`ifconfig $i | sed 's/addr://g' | sed -ne 's/^.*inet \([0-9.]*\) .*$/\1/p'` | ||
44 | if [ "$NET_ADDR" = "$ADDR" ]; then | ||
45 | EXTRA_PARAM="--noipconfig $i" | ||
46 | break | ||
47 | fi | ||
48 | done | ||
49 | fi | ||
50 | fi | ||
51 | fi | ||
52 | if [ -f @LIBDIR@/connman/wired-setup ] ; then | ||
53 | . @LIBDIR@/connman/wired-setup | ||
54 | fi | ||
55 | $DAEMON $EXTRA_PARAM | ||
56 | } | ||
57 | |||
58 | do_stop() { | ||
59 | start-stop-daemon --stop --name connmand --quiet | ||
60 | } | ||
61 | |||
62 | case "$1" in | ||
63 | start) | ||
64 | echo "Starting $DESC" | ||
65 | do_start | ||
66 | ;; | ||
67 | stop) | ||
68 | echo "Stopping $DESC" | ||
69 | do_stop | ||
70 | ;; | ||
71 | restart|force-reload) | ||
72 | echo "Restarting $DESC" | ||
73 | do_stop | ||
74 | sleep 1 | ||
75 | do_start | ||
76 | ;; | ||
77 | *) | ||
78 | echo "Usage: $0 {start|stop|restart|force-reload}" >&2 | ||
79 | exit 1 | ||
80 | ;; | ||
81 | esac | ||
82 | |||
83 | exit 0 | ||
diff --git a/recipes-core/busybox/busybox_1.22.1.bbappend b/recipes-core/busybox/busybox_1.22.1.bbappend new file mode 100644 index 0000000..7b61cf9 --- /dev/null +++ b/recipes-core/busybox/busybox_1.22.1.bbappend | |||
@@ -0,0 +1,19 @@ | |||
1 | do_prepare_config_append () { | ||
2 | sed -i -e 's/# CONFIG_CHRT is not set/CONFIG_CHRT=y/' .config | ||
3 | sed -i -e 's/# CONFIG_TASKSET is not set/CONFIG_TASKSET=y/' .config | ||
4 | sed -i -e 's/# CONFIG_FEATURE_TASKSET_FANCY is not set/CONFIG_FEATURE_TASKSET_FANCY=y/' .config | ||
5 | sed -i -e 's/# CONFIG_HTTPD is not set/CONFIG_HTTPD=y/' .config | ||
6 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_RANGES is not set/CONFIG_FEATURE_HTTPD_RANGES=y/' .config | ||
7 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set/CONFIG_FEATURE_HTTPD_USE_SENDFILE=y/' .config | ||
8 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_SETUID is not set/CONFIG_FEATURE_HTTPD_SETUID=y/' .config | ||
9 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set/CONFIG_FEATURE_HTTPD_BASIC_AUTH=y/' .config | ||
10 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set/CONFIG_FEATURE_HTTPD_AUTH_MD5=y/' .config | ||
11 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_CGI is not set/CONFIG_FEATURE_HTTPD_CGI=y/' .config | ||
12 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set/CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y/' .config | ||
13 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set/CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y/' .config | ||
14 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set/CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y/' .config | ||
15 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set/CONFIG_FEATURE_HTTPD_ERROR_PAGES=y/' .config | ||
16 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_PROXY is not set/CONFIG_FEATURE_HTTPD_PROXY=y/' .config | ||
17 | sed -i -e 's/# CONFIG_FEATURE_HTTPD_GZIP is not set/CONFIG_FEATURE_HTTPD_GZIP=y/' .config | ||
18 | sed -i -e 's/# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set/CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y/' .config | ||
19 | } | ||
diff --git a/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend new file mode 100644 index 0000000..590b4f1 --- /dev/null +++ b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend | |||
@@ -0,0 +1 @@ | |||
RDEPENDS_${PN} += "nativesdk-e2fsprogs nativesdk-u-boot-mkimage" | |||
diff --git a/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend b/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend new file mode 100644 index 0000000..f939bbf --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend | |||
@@ -0,0 +1 @@ | |||
RDEPENDS_${PN} += "libstdc++-staticdev glibc-staticdev" | |||
diff --git a/recipes-core/packagegroups/packagegroup-enea-bench.bb b/recipes-core/packagegroups/packagegroup-enea-bench.bb new file mode 100644 index 0000000..f536bbc --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-enea-bench.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | DESCRIPTION = "Package group for benchmarking test" | ||
2 | LICENSE = "MIT" | ||
3 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ | ||
4 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
5 | PR = "r0" | ||
6 | |||
7 | inherit packagegroup | ||
8 | |||
9 | RDEPENDS_${PN} = "\ | ||
10 | " | ||
11 | |||
12 | RRECOMMENDS_${PN} = "\ | ||
13 | benchtest-runner \ | ||
14 | " | ||
diff --git a/recipes-core/packagegroups/packagegroup-enea-core-boot.bb b/recipes-core/packagegroups/packagegroup-enea-core-boot.bb new file mode 100644 index 0000000..d0836ae --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-enea-core-boot.bb | |||
@@ -0,0 +1,65 @@ | |||
1 | # | ||
2 | # Copyright (C) 2007 OpenedHand Ltd. | ||
3 | # | ||
4 | |||
5 | SUMMARY = "Minimal boot requirements" | ||
6 | DESCRIPTION = "The minimal and busybox set of packages required to boot the system" | ||
7 | LICENSE = "MIT" | ||
8 | DEPENDS = "virtual/kernel" | ||
9 | PR = "r11" | ||
10 | |||
11 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
12 | |||
13 | inherit packagegroup | ||
14 | |||
15 | # | ||
16 | # Set by the machine configuration with packages essential for device bootup | ||
17 | # | ||
18 | MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" | ||
19 | MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" | ||
20 | |||
21 | # For backwards compatibility after rename | ||
22 | RPROVIDES_${PN} = "task-core-boot" | ||
23 | RREPLACES_${PN} = "task-core-boot" | ||
24 | RCONFLICTS_${PN} = "task-core-boot" | ||
25 | |||
26 | # Distro can override the following VIRTUAL-RUNTIME providers: | ||
27 | VIRTUAL-RUNTIME_dev_manager ?= "udev" | ||
28 | VIRTUAL-RUNTIME_login_manager ?= "busybox" | ||
29 | VIRTUAL-RUNTIME_init_manager ?= "sysvinit" | ||
30 | VIRTUAL-RUNTIME_initscripts ?= "initscripts" | ||
31 | VIRTUAL-RUNTIME_keymaps ?= "keymaps" | ||
32 | |||
33 | RDEPENDS_${PN} += "\ | ||
34 | base-files \ | ||
35 | base-passwd \ | ||
36 | ${@base_contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \ | ||
37 | modutils-initscripts \ | ||
38 | netbase \ | ||
39 | init-ifupdown \ | ||
40 | ${VIRTUAL-RUNTIME_login_manager} \ | ||
41 | ${VIRTUAL-RUNTIME_init_manager} \ | ||
42 | ${VIRTUAL-RUNTIME_initscripts} \ | ||
43 | ${VIRTUAL-RUNTIME_dev_manager} \ | ||
44 | ${VIRTUAL-RUNTIME_update-alternatives} \ | ||
45 | ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" | ||
46 | |||
47 | RDEPENDS_${PN}_append_fslmachine = " u-boot" | ||
48 | RDEPENDS_${PN}_append_p2041 = " fm-ucode rcw" | ||
49 | RDEPENDS_${PN}_append_p4080 = " fm-ucode rcw" | ||
50 | RDEPENDS_${PN} += "\ | ||
51 | busybox \ | ||
52 | ${@base_contains("MACHINE_FEATURES", "rtc", "busybox-hwclock", "", d)} \ | ||
53 | " | ||
54 | |||
55 | RDEPENDS_${PN}_append_x86 = "\ | ||
56 | kernel-vmlinux \ | ||
57 | kernel \ | ||
58 | " | ||
59 | RDEPENDS_${PN}_append_x86-64 = "\ | ||
60 | kernel-vmlinux \ | ||
61 | kernel \ | ||
62 | " | ||
63 | |||
64 | RRECOMMENDS_${PN} = "\ | ||
65 | ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" | ||
diff --git a/recipes-core/packagegroups/packagegroup-enea-ddt.bb b/recipes-core/packagegroups/packagegroup-enea-ddt.bb new file mode 100644 index 0000000..3116b4b --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-enea-ddt.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | DESCRIPTION = "Package group for driver test" | ||
2 | LICENSE = "MIT" | ||
3 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ | ||
4 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
5 | PR = "r0" | ||
6 | |||
7 | inherit packagegroup | ||
8 | |||
9 | RDEPENDS_${PN} = "\ | ||
10 | hdparm \ | ||
11 | rt-tests \ | ||
12 | i2c-tools \ | ||
13 | mtd-utils \ | ||
14 | net-tools \ | ||
15 | pciutils \ | ||
16 | usbutils \ | ||
17 | watchdog \ | ||
18 | " | ||
19 | |||
20 | RRECOMMENDS_${PN} = "\ | ||
21 | ddt-runner \ | ||
22 | " | ||
diff --git a/recipes-core/packagegroups/packagegroup-enea-debug.bb b/recipes-core/packagegroups/packagegroup-enea-debug.bb new file mode 100644 index 0000000..b1d386b --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-enea-debug.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | DESCRIPTION = "Tools package group for OE-Core" | ||
2 | LICENSE = "MIT" | ||
3 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ | ||
4 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
5 | PR = "r0" | ||
6 | |||
7 | PACKAGES = "\ | ||
8 | ${PN} \ | ||
9 | ${PN}-dbg \ | ||
10 | ${PN}-dev \ | ||
11 | " | ||
12 | |||
13 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
14 | |||
15 | ALLOW_EMPTY_${PN} = "1" | ||
16 | |||
17 | # systemtap needs elfutils which is not fully buildable on uclibc | ||
18 | # hence we exclude it from uclibc based builds | ||
19 | SYSTEMTAP = "systemtap" | ||
20 | SYSTEMTAP_libc-uclibc = "" | ||
21 | |||
22 | # kexec-tools doesn't work on Mips | ||
23 | KEXECTOOLS ?= "kexec-tools" | ||
24 | KEXECTOOLS_mips ?= "" | ||
25 | KEXECTOOLS_mipsel ?= "" | ||
26 | # No need to remove kexec-tools from powerpc | ||
27 | #KEXECTOOLS_powerpc ?= "" | ||
28 | |||
29 | RDEPENDS_${PN} = "\ | ||
30 | gdb \ | ||
31 | gdbserver \ | ||
32 | rsync \ | ||
33 | strace \ | ||
34 | ${SYSTEMTAP} \ | ||
35 | " | ||
diff --git a/recipes-core/packagegroups/packagegroup-enea-ptest.bb b/recipes-core/packagegroups/packagegroup-enea-ptest.bb new file mode 100644 index 0000000..f319469 --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-enea-ptest.bb | |||
@@ -0,0 +1,118 @@ | |||
1 | DESCRIPTION = "Ptest package group" | ||
2 | LICENSE = "MIT" | ||
3 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ | ||
4 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
5 | PR = "r0" | ||
6 | |||
7 | inherit packagegroup | ||
8 | |||
9 | ENEA_DAEMONS = " \ | ||
10 | at \ | ||
11 | cronie \ | ||
12 | " | ||
13 | |||
14 | ENEA_DATABASE = " \ | ||
15 | sqlite3 \ | ||
16 | " | ||
17 | |||
18 | ENEA_TRACE = " \ | ||
19 | babeltrace \ | ||
20 | ${VALGRIND} \ | ||
21 | " | ||
22 | |||
23 | VALGRIND ?= "" | ||
24 | VALGRIND_powerpc ?= "valgrind" | ||
25 | VALGRIND_e500v2 ?= "" | ||
26 | VALGRIND_x86 ?= "valgrind" | ||
27 | VALGRIND_x86_64 ?= "valgrind" | ||
28 | VALGRIND_armv7a ?= "valgrind" | ||
29 | |||
30 | ENEA_DEV = " \ | ||
31 | glibc-locale \ | ||
32 | " | ||
33 | |||
34 | ENEA_DEVICE = " \ | ||
35 | libusb1-dbg \ | ||
36 | libusb-compat-dbg \ | ||
37 | usbutils \ | ||
38 | " | ||
39 | |||
40 | ENEA_FSYS = " \ | ||
41 | acl \ | ||
42 | pramfs-init \ | ||
43 | " | ||
44 | |||
45 | ENEA_HIGHAVA = " \ | ||
46 | kexec \ | ||
47 | kexec-tools \ | ||
48 | " | ||
49 | |||
50 | ENEA_LIBS = " \ | ||
51 | gettext \ | ||
52 | gettext-runtime \ | ||
53 | libstdc++ \ | ||
54 | libuio \ | ||
55 | zlib \ | ||
56 | " | ||
57 | |||
58 | ENEA_MESSAGING = " \ | ||
59 | dbus \ | ||
60 | " | ||
61 | |||
62 | ENEA_SCRIPTING = " \ | ||
63 | tcl \ | ||
64 | python \ | ||
65 | " | ||
66 | |||
67 | ENEA_SECURITY = " \ | ||
68 | openssl" | ||
69 | |||
70 | ENEA_SHELL = " \ | ||
71 | ncurses" | ||
72 | |||
73 | ENEA_UTILS = " \ | ||
74 | bc \ | ||
75 | bonnie++ \ | ||
76 | expat \ | ||
77 | " | ||
78 | |||
79 | ENEA_GPL ?= " \ | ||
80 | linx \ | ||
81 | linx-mod \ | ||
82 | " | ||
83 | ENEA_BSD = " \ | ||
84 | partrt \ | ||
85 | " | ||
86 | |||
87 | ENEA_GPL_qemux86 = "" | ||
88 | ENEA_GPL_qemuppc = "" | ||
89 | ENEA_GPL_armv5 = "" | ||
90 | ENEA_GPL_armv7a = "" | ||
91 | ENEA_GPL_aarch64 = "" | ||
92 | |||
93 | RDEPENDS_${PN} = " \ | ||
94 | ${ENEA_DAEMONS} \ | ||
95 | ${ENEA_DATABASE} \ | ||
96 | ${ENEA_TRACE} \ | ||
97 | ${ENEA_DEV} \ | ||
98 | ${ENEA_DEVICE} \ | ||
99 | ${ENEA_FSYS} \ | ||
100 | ${ENEA_HIGHAVA} \ | ||
101 | ${ENEA_LIBS} \ | ||
102 | ${ENEA_MESSAGING} \ | ||
103 | ${ENEA_SCRIPTING} \ | ||
104 | ${ENEA_SECURITY} \ | ||
105 | ${ENEA_SHELL} \ | ||
106 | ${ENEA_UTILS} \ | ||
107 | ${ENEA_GPL} \ | ||
108 | ${ENEA_BSD} \ | ||
109 | ethtool \ | ||
110 | libxml2 \ | ||
111 | gdb \ | ||
112 | elfutils \ | ||
113 | " | ||
114 | |||
115 | |||
116 | RRECOMMENDS_${PN} = " \ | ||
117 | ptest-runner \ | ||
118 | " | ||
diff --git a/recipes-core/packagegroups/packagegroup-enea-rt-tools.bb b/recipes-core/packagegroups/packagegroup-enea-rt-tools.bb new file mode 100644 index 0000000..7515ed4 --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-enea-rt-tools.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | DESCRIPTION = "Enea RT-tools package group" | ||
2 | LICENSE = "MIT" | ||
3 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ | ||
4 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
5 | PR = "r1" | ||
6 | |||
7 | inherit packagegroup | ||
8 | |||
9 | RDEPENDS_${PN} = " \ | ||
10 | partrt \ | ||
11 | count-ticks \ | ||
12 | list2mask \ | ||
13 | " | ||
diff --git a/recipes-core/packagegroups/packagegroup-enea-sys.bb b/recipes-core/packagegroups/packagegroup-enea-sys.bb new file mode 100644 index 0000000..9ec9756 --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-enea-sys.bb | |||
@@ -0,0 +1,18 @@ | |||
1 | DESCRIPTION = "Package group for system test" | ||
2 | LICENSE = "MIT" | ||
3 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ | ||
4 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
5 | PR = "r0" | ||
6 | |||
7 | inherit packagegroup | ||
8 | |||
9 | RDEPENDS_${PN} = "\ | ||
10 | ltp \ | ||
11 | logrotate \ | ||
12 | sudo \ | ||
13 | " | ||
14 | |||
15 | RRECOMMENDS_${PN} = "\ | ||
16 | systest-runner \ | ||
17 | perf-networking \ | ||
18 | " | ||
diff --git a/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend b/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend new file mode 100644 index 0000000..4fd3c00 --- /dev/null +++ b/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend | |||
@@ -0,0 +1,3 @@ | |||
1 | do_install_append(){ | ||
2 | chmod o+x ${D}${base_sbindir}/shutdown | ||
3 | } | ||
diff --git a/recipes-devtools/binutils/binutils-2.24.inc b/recipes-devtools/binutils/binutils-2.24.inc new file mode 100644 index 0000000..3a1186c --- /dev/null +++ b/recipes-devtools/binutils/binutils-2.24.inc | |||
@@ -0,0 +1,6 @@ | |||
1 | FILESEXTRAPATHS_prepend := "${THISDIR}/files:" | ||
2 | |||
3 | SRC_URI += "\ | ||
4 | file://0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch \ | ||
5 | " | ||
6 | |||
diff --git a/recipes-devtools/binutils/binutils-cross-canadian_2.24.bbappend b/recipes-devtools/binutils/binutils-cross-canadian_2.24.bbappend new file mode 100644 index 0000000..0427595 --- /dev/null +++ b/recipes-devtools/binutils/binutils-cross-canadian_2.24.bbappend | |||
@@ -0,0 +1 @@ | |||
require binutils-${PV}.inc | |||
diff --git a/recipes-devtools/binutils/binutils-cross_2.24.bbappend b/recipes-devtools/binutils/binutils-cross_2.24.bbappend new file mode 100644 index 0000000..0427595 --- /dev/null +++ b/recipes-devtools/binutils/binutils-cross_2.24.bbappend | |||
@@ -0,0 +1 @@ | |||
require binutils-${PV}.inc | |||
diff --git a/recipes-devtools/binutils/binutils-crosssdk_2.24.bbappend b/recipes-devtools/binutils/binutils-crosssdk_2.24.bbappend new file mode 100644 index 0000000..0427595 --- /dev/null +++ b/recipes-devtools/binutils/binutils-crosssdk_2.24.bbappend | |||
@@ -0,0 +1 @@ | |||
require binutils-${PV}.inc | |||
diff --git a/recipes-devtools/binutils/binutils_2.24.bbappend b/recipes-devtools/binutils/binutils_2.24.bbappend new file mode 100644 index 0000000..0427595 --- /dev/null +++ b/recipes-devtools/binutils/binutils_2.24.bbappend | |||
@@ -0,0 +1 @@ | |||
require binutils-${PV}.inc | |||
diff --git a/recipes-devtools/binutils/files/0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch b/recipes-devtools/binutils/files/0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch new file mode 100644 index 0000000..bda760f --- /dev/null +++ b/recipes-devtools/binutils/files/0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch | |||
@@ -0,0 +1,1087 @@ | |||
1 | From 269bee7df1abfdc230f1ed6a6de3150adffde962 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> | ||
3 | Date: Fri, 11 Apr 2014 16:15:36 +0300 | ||
4 | Subject: [PATCH] Revert 'Report overflow on PowerPC64 @h and @ha | ||
5 | relocations.' patch | ||
6 | |||
7 | --- | ||
8 | bfd/elf64-ppc.c | 183 +++++++++------------------------------------------ | ||
9 | bfd/reloc.c | 12 ---- | ||
10 | elfcpp/powerpc.h | 6 -- | ||
11 | gas/config/tc-ppc.c | 139 ++++++++++---------------------------- | ||
12 | gold/powerpc.cc | 130 +++++++++++------------------------- | ||
13 | include/elf/ppc64.h | 13 +--- | ||
14 | 6 files changed, 109 insertions(+), 374 deletions(-) | ||
15 | |||
16 | diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c | ||
17 | index bf13a5d..ba3c655 100644 | ||
18 | --- a/bfd/elf64-ppc.c | ||
19 | +++ b/bfd/elf64-ppc.c | ||
20 | @@ -327,7 +327,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
21 | 16, /* bitsize */ | ||
22 | FALSE, /* pc_relative */ | ||
23 | 0, /* bitpos */ | ||
24 | - complain_overflow_signed, /* complain_on_overflow */ | ||
25 | + complain_overflow_dont, /* complain_on_overflow */ | ||
26 | bfd_elf_generic_reloc, /* special_function */ | ||
27 | "R_PPC64_ADDR16_HI", /* name */ | ||
28 | FALSE, /* partial_inplace */ | ||
29 | @@ -343,7 +343,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
30 | 16, /* bitsize */ | ||
31 | FALSE, /* pc_relative */ | ||
32 | 0, /* bitpos */ | ||
33 | - complain_overflow_signed, /* complain_on_overflow */ | ||
34 | + complain_overflow_dont, /* complain_on_overflow */ | ||
35 | ppc64_elf_ha_reloc, /* special_function */ | ||
36 | "R_PPC64_ADDR16_HA", /* name */ | ||
37 | FALSE, /* partial_inplace */ | ||
38 | @@ -505,7 +505,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
39 | 16, /* bitsize */ | ||
40 | FALSE, /* pc_relative */ | ||
41 | 0, /* bitpos */ | ||
42 | - complain_overflow_signed,/* complain_on_overflow */ | ||
43 | + complain_overflow_dont,/* complain_on_overflow */ | ||
44 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
45 | "R_PPC64_GOT16_HI", /* name */ | ||
46 | FALSE, /* partial_inplace */ | ||
47 | @@ -521,7 +521,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
48 | 16, /* bitsize */ | ||
49 | FALSE, /* pc_relative */ | ||
50 | 0, /* bitpos */ | ||
51 | - complain_overflow_signed,/* complain_on_overflow */ | ||
52 | + complain_overflow_dont,/* complain_on_overflow */ | ||
53 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
54 | "R_PPC64_GOT16_HA", /* name */ | ||
55 | FALSE, /* partial_inplace */ | ||
56 | @@ -698,7 +698,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
57 | 16, /* bitsize */ | ||
58 | FALSE, /* pc_relative */ | ||
59 | 0, /* bitpos */ | ||
60 | - complain_overflow_signed, /* complain_on_overflow */ | ||
61 | + complain_overflow_dont, /* complain_on_overflow */ | ||
62 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
63 | "R_PPC64_PLT16_HI", /* name */ | ||
64 | FALSE, /* partial_inplace */ | ||
65 | @@ -714,7 +714,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
66 | 16, /* bitsize */ | ||
67 | FALSE, /* pc_relative */ | ||
68 | 0, /* bitpos */ | ||
69 | - complain_overflow_signed, /* complain_on_overflow */ | ||
70 | + complain_overflow_dont, /* complain_on_overflow */ | ||
71 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
72 | "R_PPC64_PLT16_HA", /* name */ | ||
73 | FALSE, /* partial_inplace */ | ||
74 | @@ -759,7 +759,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
75 | 16, /* bitsize */ | ||
76 | FALSE, /* pc_relative */ | ||
77 | 0, /* bitpos */ | ||
78 | - complain_overflow_signed, /* complain_on_overflow */ | ||
79 | + complain_overflow_dont, /* complain_on_overflow */ | ||
80 | ppc64_elf_sectoff_reloc, /* special_function */ | ||
81 | "R_PPC64_SECTOFF_HI", /* name */ | ||
82 | FALSE, /* partial_inplace */ | ||
83 | @@ -774,7 +774,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
84 | 16, /* bitsize */ | ||
85 | FALSE, /* pc_relative */ | ||
86 | 0, /* bitpos */ | ||
87 | - complain_overflow_signed, /* complain_on_overflow */ | ||
88 | + complain_overflow_dont, /* complain_on_overflow */ | ||
89 | ppc64_elf_sectoff_ha_reloc, /* special_function */ | ||
90 | "R_PPC64_SECTOFF_HA", /* name */ | ||
91 | FALSE, /* partial_inplace */ | ||
92 | @@ -981,7 +981,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
93 | 16, /* bitsize */ | ||
94 | FALSE, /* pc_relative */ | ||
95 | 0, /* bitpos */ | ||
96 | - complain_overflow_signed, /* complain_on_overflow */ | ||
97 | + complain_overflow_dont, /* complain_on_overflow */ | ||
98 | ppc64_elf_toc_reloc, /* special_function */ | ||
99 | "R_PPC64_TOC16_HI", /* name */ | ||
100 | FALSE, /* partial_inplace */ | ||
101 | @@ -1000,7 +1000,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
102 | 16, /* bitsize */ | ||
103 | FALSE, /* pc_relative */ | ||
104 | 0, /* bitpos */ | ||
105 | - complain_overflow_signed, /* complain_on_overflow */ | ||
106 | + complain_overflow_dont, /* complain_on_overflow */ | ||
107 | ppc64_elf_toc_ha_reloc, /* special_function */ | ||
108 | "R_PPC64_TOC16_HA", /* name */ | ||
109 | FALSE, /* partial_inplace */ | ||
110 | @@ -1072,7 +1072,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
111 | 16, /* bitsize */ | ||
112 | FALSE, /* pc_relative */ | ||
113 | 0, /* bitpos */ | ||
114 | - complain_overflow_signed, /* complain_on_overflow */ | ||
115 | + complain_overflow_dont, /* complain_on_overflow */ | ||
116 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
117 | "R_PPC64_PLTGOT16_HI", /* name */ | ||
118 | FALSE, /* partial_inplace */ | ||
119 | @@ -1090,7 +1090,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
120 | 16, /* bitsize */ | ||
121 | FALSE, /* pc_relative */ | ||
122 | 0, /* bitpos */ | ||
123 | - complain_overflow_signed, /* complain_on_overflow */ | ||
124 | + complain_overflow_dont,/* complain_on_overflow */ | ||
125 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
126 | "R_PPC64_PLTGOT16_HA", /* name */ | ||
127 | FALSE, /* partial_inplace */ | ||
128 | @@ -1392,7 +1392,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
129 | 16, /* bitsize */ | ||
130 | FALSE, /* pc_relative */ | ||
131 | 0, /* bitpos */ | ||
132 | - complain_overflow_signed, /* complain_on_overflow */ | ||
133 | + complain_overflow_dont, /* complain_on_overflow */ | ||
134 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
135 | "R_PPC64_DTPREL16_HI", /* name */ | ||
136 | FALSE, /* partial_inplace */ | ||
137 | @@ -1407,7 +1407,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
138 | 16, /* bitsize */ | ||
139 | FALSE, /* pc_relative */ | ||
140 | 0, /* bitpos */ | ||
141 | - complain_overflow_signed, /* complain_on_overflow */ | ||
142 | + complain_overflow_dont, /* complain_on_overflow */ | ||
143 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
144 | "R_PPC64_DTPREL16_HA", /* name */ | ||
145 | FALSE, /* partial_inplace */ | ||
146 | @@ -1558,7 +1558,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
147 | 16, /* bitsize */ | ||
148 | FALSE, /* pc_relative */ | ||
149 | 0, /* bitpos */ | ||
150 | - complain_overflow_signed, /* complain_on_overflow */ | ||
151 | + complain_overflow_dont, /* complain_on_overflow */ | ||
152 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
153 | "R_PPC64_TPREL16_HI", /* name */ | ||
154 | FALSE, /* partial_inplace */ | ||
155 | @@ -1573,7 +1573,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
156 | 16, /* bitsize */ | ||
157 | FALSE, /* pc_relative */ | ||
158 | 0, /* bitpos */ | ||
159 | - complain_overflow_signed, /* complain_on_overflow */ | ||
160 | + complain_overflow_dont, /* complain_on_overflow */ | ||
161 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
162 | "R_PPC64_TPREL16_HA", /* name */ | ||
163 | FALSE, /* partial_inplace */ | ||
164 | @@ -1710,7 +1710,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
165 | 16, /* bitsize */ | ||
166 | FALSE, /* pc_relative */ | ||
167 | 0, /* bitpos */ | ||
168 | - complain_overflow_signed, /* complain_on_overflow */ | ||
169 | + complain_overflow_dont, /* complain_on_overflow */ | ||
170 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
171 | "R_PPC64_GOT_TLSGD16_HI", /* name */ | ||
172 | FALSE, /* partial_inplace */ | ||
173 | @@ -1725,7 +1725,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
174 | 16, /* bitsize */ | ||
175 | FALSE, /* pc_relative */ | ||
176 | 0, /* bitpos */ | ||
177 | - complain_overflow_signed, /* complain_on_overflow */ | ||
178 | + complain_overflow_dont, /* complain_on_overflow */ | ||
179 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
180 | "R_PPC64_GOT_TLSGD16_HA", /* name */ | ||
181 | FALSE, /* partial_inplace */ | ||
182 | @@ -1772,7 +1772,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
183 | 16, /* bitsize */ | ||
184 | FALSE, /* pc_relative */ | ||
185 | 0, /* bitpos */ | ||
186 | - complain_overflow_signed, /* complain_on_overflow */ | ||
187 | + complain_overflow_dont, /* complain_on_overflow */ | ||
188 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
189 | "R_PPC64_GOT_TLSLD16_HI", /* name */ | ||
190 | FALSE, /* partial_inplace */ | ||
191 | @@ -1787,7 +1787,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
192 | 16, /* bitsize */ | ||
193 | FALSE, /* pc_relative */ | ||
194 | 0, /* bitpos */ | ||
195 | - complain_overflow_signed, /* complain_on_overflow */ | ||
196 | + complain_overflow_dont, /* complain_on_overflow */ | ||
197 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
198 | "R_PPC64_GOT_TLSLD16_HA", /* name */ | ||
199 | FALSE, /* partial_inplace */ | ||
200 | @@ -1833,7 +1833,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
201 | 16, /* bitsize */ | ||
202 | FALSE, /* pc_relative */ | ||
203 | 0, /* bitpos */ | ||
204 | - complain_overflow_signed, /* complain_on_overflow */ | ||
205 | + complain_overflow_dont, /* complain_on_overflow */ | ||
206 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
207 | "R_PPC64_GOT_DTPREL16_HI", /* name */ | ||
208 | FALSE, /* partial_inplace */ | ||
209 | @@ -1848,7 +1848,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
210 | 16, /* bitsize */ | ||
211 | FALSE, /* pc_relative */ | ||
212 | 0, /* bitpos */ | ||
213 | - complain_overflow_signed, /* complain_on_overflow */ | ||
214 | + complain_overflow_dont, /* complain_on_overflow */ | ||
215 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
216 | "R_PPC64_GOT_DTPREL16_HA", /* name */ | ||
217 | FALSE, /* partial_inplace */ | ||
218 | @@ -1894,7 +1894,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
219 | 16, /* bitsize */ | ||
220 | FALSE, /* pc_relative */ | ||
221 | 0, /* bitpos */ | ||
222 | - complain_overflow_signed, /* complain_on_overflow */ | ||
223 | + complain_overflow_dont, /* complain_on_overflow */ | ||
224 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
225 | "R_PPC64_GOT_TPREL16_HI", /* name */ | ||
226 | FALSE, /* partial_inplace */ | ||
227 | @@ -1909,7 +1909,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
228 | 16, /* bitsize */ | ||
229 | FALSE, /* pc_relative */ | ||
230 | 0, /* bitpos */ | ||
231 | - complain_overflow_signed, /* complain_on_overflow */ | ||
232 | + complain_overflow_dont, /* complain_on_overflow */ | ||
233 | ppc64_elf_unhandled_reloc, /* special_function */ | ||
234 | "R_PPC64_GOT_TPREL16_HA", /* name */ | ||
235 | FALSE, /* partial_inplace */ | ||
236 | @@ -1982,7 +1982,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
237 | 16, /* bitsize */ | ||
238 | TRUE, /* pc_relative */ | ||
239 | 0, /* bitpos */ | ||
240 | - complain_overflow_signed, /* complain_on_overflow */ | ||
241 | + complain_overflow_dont, /* complain_on_overflow */ | ||
242 | bfd_elf_generic_reloc, /* special_function */ | ||
243 | "R_PPC64_REL16_HI", /* name */ | ||
244 | FALSE, /* partial_inplace */ | ||
245 | @@ -1998,7 +1998,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
246 | 16, /* bitsize */ | ||
247 | TRUE, /* pc_relative */ | ||
248 | 0, /* bitpos */ | ||
249 | - complain_overflow_signed, /* complain_on_overflow */ | ||
250 | + complain_overflow_dont, /* complain_on_overflow */ | ||
251 | ppc64_elf_ha_reloc, /* special_function */ | ||
252 | "R_PPC64_REL16_HA", /* name */ | ||
253 | FALSE, /* partial_inplace */ | ||
254 | @@ -2006,96 +2006,6 @@ static reloc_howto_type ppc64_elf_howto_raw[] = { | ||
255 | 0xffff, /* dst_mask */ | ||
256 | TRUE), /* pcrel_offset */ | ||
257 | |||
258 | - /* Like R_PPC64_ADDR16_HI, but no overflow. */ | ||
259 | - HOWTO (R_PPC64_ADDR16_HIGH, /* type */ | ||
260 | - 16, /* rightshift */ | ||
261 | - 1, /* size (0 = byte, 1 = short, 2 = long) */ | ||
262 | - 16, /* bitsize */ | ||
263 | - FALSE, /* pc_relative */ | ||
264 | - 0, /* bitpos */ | ||
265 | - complain_overflow_dont, /* complain_on_overflow */ | ||
266 | - bfd_elf_generic_reloc, /* special_function */ | ||
267 | - "R_PPC64_ADDR16_HIGH", /* name */ | ||
268 | - FALSE, /* partial_inplace */ | ||
269 | - 0, /* src_mask */ | ||
270 | - 0xffff, /* dst_mask */ | ||
271 | - FALSE), /* pcrel_offset */ | ||
272 | - | ||
273 | - /* Like R_PPC64_ADDR16_HA, but no overflow. */ | ||
274 | - HOWTO (R_PPC64_ADDR16_HIGHA, /* type */ | ||
275 | - 16, /* rightshift */ | ||
276 | - 1, /* size (0 = byte, 1 = short, 2 = long) */ | ||
277 | - 16, /* bitsize */ | ||
278 | - FALSE, /* pc_relative */ | ||
279 | - 0, /* bitpos */ | ||
280 | - complain_overflow_dont, /* complain_on_overflow */ | ||
281 | - ppc64_elf_ha_reloc, /* special_function */ | ||
282 | - "R_PPC64_ADDR16_HIGHA", /* name */ | ||
283 | - FALSE, /* partial_inplace */ | ||
284 | - 0, /* src_mask */ | ||
285 | - 0xffff, /* dst_mask */ | ||
286 | - FALSE), /* pcrel_offset */ | ||
287 | - | ||
288 | - /* Like R_PPC64_DTPREL16_HI, but no overflow. */ | ||
289 | - HOWTO (R_PPC64_DTPREL16_HIGH, | ||
290 | - 16, /* rightshift */ | ||
291 | - 1, /* size (0 = byte, 1 = short, 2 = long) */ | ||
292 | - 16, /* bitsize */ | ||
293 | - FALSE, /* pc_relative */ | ||
294 | - 0, /* bitpos */ | ||
295 | - complain_overflow_dont, /* complain_on_overflow */ | ||
296 | - ppc64_elf_unhandled_reloc, /* special_function */ | ||
297 | - "R_PPC64_DTPREL16_HIGH", /* name */ | ||
298 | - FALSE, /* partial_inplace */ | ||
299 | - 0, /* src_mask */ | ||
300 | - 0xffff, /* dst_mask */ | ||
301 | - FALSE), /* pcrel_offset */ | ||
302 | - | ||
303 | - /* Like R_PPC64_DTPREL16_HA, but no overflow. */ | ||
304 | - HOWTO (R_PPC64_DTPREL16_HIGHA, | ||
305 | - 16, /* rightshift */ | ||
306 | - 1, /* size (0 = byte, 1 = short, 2 = long) */ | ||
307 | - 16, /* bitsize */ | ||
308 | - FALSE, /* pc_relative */ | ||
309 | - 0, /* bitpos */ | ||
310 | - complain_overflow_dont, /* complain_on_overflow */ | ||
311 | - ppc64_elf_unhandled_reloc, /* special_function */ | ||
312 | - "R_PPC64_DTPREL16_HIGHA", /* name */ | ||
313 | - FALSE, /* partial_inplace */ | ||
314 | - 0, /* src_mask */ | ||
315 | - 0xffff, /* dst_mask */ | ||
316 | - FALSE), /* pcrel_offset */ | ||
317 | - | ||
318 | - /* Like R_PPC64_TPREL16_HI, but no overflow. */ | ||
319 | - HOWTO (R_PPC64_TPREL16_HIGH, | ||
320 | - 16, /* rightshift */ | ||
321 | - 1, /* size (0 = byte, 1 = short, 2 = long) */ | ||
322 | - 16, /* bitsize */ | ||
323 | - FALSE, /* pc_relative */ | ||
324 | - 0, /* bitpos */ | ||
325 | - complain_overflow_dont, /* complain_on_overflow */ | ||
326 | - ppc64_elf_unhandled_reloc, /* special_function */ | ||
327 | - "R_PPC64_TPREL16_HIGH", /* name */ | ||
328 | - FALSE, /* partial_inplace */ | ||
329 | - 0, /* src_mask */ | ||
330 | - 0xffff, /* dst_mask */ | ||
331 | - FALSE), /* pcrel_offset */ | ||
332 | - | ||
333 | - /* Like R_PPC64_TPREL16_HA, but no overflow. */ | ||
334 | - HOWTO (R_PPC64_TPREL16_HIGHA, | ||
335 | - 16, /* rightshift */ | ||
336 | - 1, /* size (0 = byte, 1 = short, 2 = long) */ | ||
337 | - 16, /* bitsize */ | ||
338 | - FALSE, /* pc_relative */ | ||
339 | - 0, /* bitpos */ | ||
340 | - complain_overflow_dont, /* complain_on_overflow */ | ||
341 | - ppc64_elf_unhandled_reloc, /* special_function */ | ||
342 | - "R_PPC64_TPREL16_HIGHA", /* name */ | ||
343 | - FALSE, /* partial_inplace */ | ||
344 | - 0, /* src_mask */ | ||
345 | - 0xffff, /* dst_mask */ | ||
346 | - FALSE), /* pcrel_offset */ | ||
347 | - | ||
348 | /* GNU extension to record C++ vtable hierarchy. */ | ||
349 | HOWTO (R_PPC64_GNU_VTINHERIT, /* type */ | ||
350 | 0, /* rightshift */ | ||
351 | @@ -2174,12 +2084,8 @@ ppc64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, | ||
352 | break; | ||
353 | case BFD_RELOC_HI16: r = R_PPC64_ADDR16_HI; | ||
354 | break; | ||
355 | - case BFD_RELOC_PPC64_ADDR16_HIGH: r = R_PPC64_ADDR16_HIGH; | ||
356 | - break; | ||
357 | case BFD_RELOC_HI16_S: r = R_PPC64_ADDR16_HA; | ||
358 | break; | ||
359 | - case BFD_RELOC_PPC64_ADDR16_HIGHA: r = R_PPC64_ADDR16_HIGHA; | ||
360 | - break; | ||
361 | case BFD_RELOC_PPC_BA16: r = R_PPC64_ADDR14; | ||
362 | break; | ||
363 | case BFD_RELOC_PPC_BA16_BRTAKEN: r = R_PPC64_ADDR14_BRTAKEN; | ||
364 | @@ -2298,12 +2204,8 @@ ppc64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, | ||
365 | break; | ||
366 | case BFD_RELOC_PPC_TPREL16_HI: r = R_PPC64_TPREL16_HI; | ||
367 | break; | ||
368 | - case BFD_RELOC_PPC64_TPREL16_HIGH: r = R_PPC64_TPREL16_HIGH; | ||
369 | - break; | ||
370 | case BFD_RELOC_PPC_TPREL16_HA: r = R_PPC64_TPREL16_HA; | ||
371 | break; | ||
372 | - case BFD_RELOC_PPC64_TPREL16_HIGHA: r = R_PPC64_TPREL16_HIGHA; | ||
373 | - break; | ||
374 | case BFD_RELOC_PPC_TPREL: r = R_PPC64_TPREL64; | ||
375 | break; | ||
376 | case BFD_RELOC_PPC_DTPREL16: r = R_PPC64_DTPREL16; | ||
377 | @@ -2312,12 +2214,8 @@ ppc64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, | ||
378 | break; | ||
379 | case BFD_RELOC_PPC_DTPREL16_HI: r = R_PPC64_DTPREL16_HI; | ||
380 | break; | ||
381 | - case BFD_RELOC_PPC64_DTPREL16_HIGH: r = R_PPC64_DTPREL16_HIGH; | ||
382 | - break; | ||
383 | case BFD_RELOC_PPC_DTPREL16_HA: r = R_PPC64_DTPREL16_HA; | ||
384 | break; | ||
385 | - case BFD_RELOC_PPC64_DTPREL16_HIGHA: r = R_PPC64_DTPREL16_HIGHA; | ||
386 | - break; | ||
387 | case BFD_RELOC_PPC_DTPREL: r = R_PPC64_DTPREL64; | ||
388 | break; | ||
389 | case BFD_RELOC_PPC_GOT_TLSGD16: r = R_PPC64_GOT_TLSGD16; | ||
390 | @@ -3662,8 +3560,6 @@ must_be_dyn_reloc (struct bfd_link_info *info, | ||
391 | case R_PPC64_TPREL16_HA: | ||
392 | case R_PPC64_TPREL16_DS: | ||
393 | case R_PPC64_TPREL16_LO_DS: | ||
394 | - case R_PPC64_TPREL16_HIGH: | ||
395 | - case R_PPC64_TPREL16_HIGHA: | ||
396 | case R_PPC64_TPREL16_HIGHER: | ||
397 | case R_PPC64_TPREL16_HIGHERA: | ||
398 | case R_PPC64_TPREL16_HIGHEST: | ||
399 | @@ -5394,8 +5290,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, | ||
400 | case R_PPC64_DTPREL16_HA: | ||
401 | case R_PPC64_DTPREL16_DS: | ||
402 | case R_PPC64_DTPREL16_LO_DS: | ||
403 | - case R_PPC64_DTPREL16_HIGH: | ||
404 | - case R_PPC64_DTPREL16_HIGHA: | ||
405 | case R_PPC64_DTPREL16_HIGHER: | ||
406 | case R_PPC64_DTPREL16_HIGHERA: | ||
407 | case R_PPC64_DTPREL16_HIGHEST: | ||
408 | @@ -5556,8 +5450,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, | ||
409 | case R_PPC64_TPREL16_HA: | ||
410 | case R_PPC64_TPREL16_DS: | ||
411 | case R_PPC64_TPREL16_LO_DS: | ||
412 | - case R_PPC64_TPREL16_HIGH: | ||
413 | - case R_PPC64_TPREL16_HIGHA: | ||
414 | case R_PPC64_TPREL16_HIGHER: | ||
415 | case R_PPC64_TPREL16_HIGHERA: | ||
416 | case R_PPC64_TPREL16_HIGHEST: | ||
417 | @@ -5605,8 +5497,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, | ||
418 | case R_PPC64_ADDR16_DS: | ||
419 | case R_PPC64_ADDR16_HA: | ||
420 | case R_PPC64_ADDR16_HI: | ||
421 | - case R_PPC64_ADDR16_HIGH: | ||
422 | - case R_PPC64_ADDR16_HIGHA: | ||
423 | case R_PPC64_ADDR16_HIGHER: | ||
424 | case R_PPC64_ADDR16_HIGHERA: | ||
425 | case R_PPC64_ADDR16_HIGHEST: | ||
426 | @@ -7363,8 +7253,6 @@ dec_dynrel_count (bfd_vma r_info, | ||
427 | case R_PPC64_TPREL16_HA: | ||
428 | case R_PPC64_TPREL16_DS: | ||
429 | case R_PPC64_TPREL16_LO_DS: | ||
430 | - case R_PPC64_TPREL16_HIGH: | ||
431 | - case R_PPC64_TPREL16_HIGHA: | ||
432 | case R_PPC64_TPREL16_HIGHER: | ||
433 | case R_PPC64_TPREL16_HIGHERA: | ||
434 | case R_PPC64_TPREL16_HIGHEST: | ||
435 | @@ -7386,8 +7274,6 @@ dec_dynrel_count (bfd_vma r_info, | ||
436 | case R_PPC64_ADDR16_DS: | ||
437 | case R_PPC64_ADDR16_HA: | ||
438 | case R_PPC64_ADDR16_HI: | ||
439 | - case R_PPC64_ADDR16_HIGH: | ||
440 | - case R_PPC64_ADDR16_HIGHA: | ||
441 | case R_PPC64_ADDR16_HIGHER: | ||
442 | case R_PPC64_ADDR16_HIGHERA: | ||
443 | case R_PPC64_ADDR16_HIGHEST: | ||
444 | @@ -14091,8 +13977,6 @@ ppc64_elf_relocate_section (bfd *output_bfd, | ||
445 | case R_PPC64_TPREL16_HA: | ||
446 | case R_PPC64_TPREL16_DS: | ||
447 | case R_PPC64_TPREL16_LO_DS: | ||
448 | - case R_PPC64_TPREL16_HIGH: | ||
449 | - case R_PPC64_TPREL16_HIGHA: | ||
450 | case R_PPC64_TPREL16_HIGHER: | ||
451 | case R_PPC64_TPREL16_HIGHERA: | ||
452 | case R_PPC64_TPREL16_HIGHEST: | ||
453 | @@ -14127,8 +14011,6 @@ ppc64_elf_relocate_section (bfd *output_bfd, | ||
454 | case R_PPC64_DTPREL16_HA: | ||
455 | case R_PPC64_DTPREL16_DS: | ||
456 | case R_PPC64_DTPREL16_LO_DS: | ||
457 | - case R_PPC64_DTPREL16_HIGH: | ||
458 | - case R_PPC64_DTPREL16_HIGHA: | ||
459 | case R_PPC64_DTPREL16_HIGHER: | ||
460 | case R_PPC64_DTPREL16_HIGHERA: | ||
461 | case R_PPC64_DTPREL16_HIGHEST: | ||
462 | @@ -14161,8 +14043,6 @@ ppc64_elf_relocate_section (bfd *output_bfd, | ||
463 | case R_PPC64_ADDR16_DS: | ||
464 | case R_PPC64_ADDR16_HA: | ||
465 | case R_PPC64_ADDR16_HI: | ||
466 | - case R_PPC64_ADDR16_HIGH: | ||
467 | - case R_PPC64_ADDR16_HIGHA: | ||
468 | case R_PPC64_ADDR16_HIGHER: | ||
469 | case R_PPC64_ADDR16_HIGHERA: | ||
470 | case R_PPC64_ADDR16_HIGHEST: | ||
471 | @@ -14477,20 +14357,21 @@ ppc64_elf_relocate_section (bfd *output_bfd, | ||
472 | default: | ||
473 | break; | ||
474 | |||
475 | - case R_PPC64_REL16_HA: | ||
476 | case R_PPC64_ADDR16_HA: | ||
477 | - case R_PPC64_ADDR16_HIGHA: | ||
478 | + case R_PPC64_REL16_HA: | ||
479 | case R_PPC64_ADDR16_HIGHERA: | ||
480 | case R_PPC64_ADDR16_HIGHESTA: | ||
481 | case R_PPC64_TOC16_HA: | ||
482 | case R_PPC64_SECTOFF_HA: | ||
483 | case R_PPC64_TPREL16_HA: | ||
484 | - case R_PPC64_TPREL16_HIGHA: | ||
485 | + case R_PPC64_DTPREL16_HA: | ||
486 | + case R_PPC64_TPREL16_HIGHER: | ||
487 | case R_PPC64_TPREL16_HIGHERA: | ||
488 | + case R_PPC64_TPREL16_HIGHEST: | ||
489 | case R_PPC64_TPREL16_HIGHESTA: | ||
490 | - case R_PPC64_DTPREL16_HA: | ||
491 | - case R_PPC64_DTPREL16_HIGHA: | ||
492 | + case R_PPC64_DTPREL16_HIGHER: | ||
493 | case R_PPC64_DTPREL16_HIGHERA: | ||
494 | + case R_PPC64_DTPREL16_HIGHEST: | ||
495 | case R_PPC64_DTPREL16_HIGHESTA: | ||
496 | /* It's just possible that this symbol is a weak symbol | ||
497 | that's not actually defined anywhere. In that case, | ||
498 | diff --git a/bfd/reloc.c b/bfd/reloc.c | ||
499 | index 77a04f8..cc34760 100644 | ||
500 | --- a/bfd/reloc.c | ||
501 | +++ b/bfd/reloc.c | ||
502 | @@ -2895,10 +2895,6 @@ ENUMX | ||
503 | BFD_RELOC_PPC64_PLTGOT16_DS | ||
504 | ENUMX | ||
505 | BFD_RELOC_PPC64_PLTGOT16_LO_DS | ||
506 | -ENUMX | ||
507 | - BFD_RELOC_PPC64_ADDR16_HIGH | ||
508 | -ENUMX | ||
509 | - BFD_RELOC_PPC64_ADDR16_HIGHA | ||
510 | ENUMDOC | ||
511 | Power(rs6000) and PowerPC relocations. | ||
512 | |||
513 | @@ -2986,14 +2982,6 @@ ENUMX | ||
514 | BFD_RELOC_PPC64_DTPREL16_HIGHEST | ||
515 | ENUMX | ||
516 | BFD_RELOC_PPC64_DTPREL16_HIGHESTA | ||
517 | -ENUMX | ||
518 | - BFD_RELOC_PPC64_TPREL16_HIGH | ||
519 | -ENUMX | ||
520 | - BFD_RELOC_PPC64_TPREL16_HIGHA | ||
521 | -ENUMX | ||
522 | - BFD_RELOC_PPC64_DTPREL16_HIGH | ||
523 | -ENUMX | ||
524 | - BFD_RELOC_PPC64_DTPREL16_HIGHA | ||
525 | ENUMDOC | ||
526 | PowerPC and PowerPC64 thread-local storage relocations. | ||
527 | |||
528 | diff --git a/elfcpp/powerpc.h b/elfcpp/powerpc.h | ||
529 | index 98354a2..0f13eda 100644 | ||
530 | --- a/elfcpp/powerpc.h | ||
531 | +++ b/elfcpp/powerpc.h | ||
532 | @@ -164,17 +164,11 @@ enum | ||
533 | R_PPC_EMB_SDA21 = 109, | ||
534 | R_PPC64_TOCSAVE = 109, | ||
535 | R_PPC_EMB_MRKREF = 110, | ||
536 | - R_PPC64_ADDR16_HIGH = 110, | ||
537 | R_PPC_EMB_RELSEC16 = 111, | ||
538 | - R_PPC64_ADDR16_HIGHA = 111, | ||
539 | R_PPC_EMB_RELST_LO = 112, | ||
540 | - R_PPC64_TPREL16_HIGH = 112, | ||
541 | R_PPC_EMB_RELST_HI = 113, | ||
542 | - R_PPC64_TPREL16_HIGHA = 113, | ||
543 | R_PPC_EMB_RELST_HA = 114, | ||
544 | - R_PPC64_DTPREL16_HIGH = 114, | ||
545 | R_PPC_EMB_BIT_FLD = 115, | ||
546 | - R_PPC64_DTPREL16_HIGHA = 115, | ||
547 | R_PPC_EMB_RELSDA = 116, | ||
548 | |||
549 | R_PPC_VLE_REL8 = 216, | ||
550 | diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c | ||
551 | index 7c99e43..d888aee 100644 | ||
552 | --- a/gas/config/tc-ppc.c | ||
553 | +++ b/gas/config/tc-ppc.c | ||
554 | @@ -87,11 +87,7 @@ static int set_target_endian = 0; | ||
555 | compensating for #lo being treated as a signed number. */ | ||
556 | #define PPC_HIGHESTA(v) PPC_HIGHEST ((v) + 0x8000) | ||
557 | |||
558 | -#define SEX16(val) (((val) ^ 0x8000) - 0x8000) | ||
559 | - | ||
560 | -/* For the time being on ppc64, don't report overflow on @h and @ha | ||
561 | - applied to constants. */ | ||
562 | -#define REPORT_OVERFLOW_HI 0 | ||
563 | +#define SEX16(val) ((((val) & 0xffff) ^ 0x8000) - 0x8000) | ||
564 | |||
565 | static bfd_boolean reg_names_p = TARGET_REG_NAMES_P; | ||
566 | |||
567 | @@ -1935,8 +1931,6 @@ ppc_elf_suffix (char **str_p, expressionS *exp_p) | ||
568 | MAP32 ("bitfld", BFD_RELOC_PPC_EMB_BIT_FLD), | ||
569 | MAP32 ("relsda", BFD_RELOC_PPC_EMB_RELSDA), | ||
570 | MAP32 ("xgot", BFD_RELOC_PPC_TOC16), | ||
571 | - MAP64 ("high", BFD_RELOC_PPC64_ADDR16_HIGH), | ||
572 | - MAP64 ("higha", BFD_RELOC_PPC64_ADDR16_HIGHA), | ||
573 | MAP64 ("higher", BFD_RELOC_PPC64_HIGHER), | ||
574 | MAP64 ("highera", BFD_RELOC_PPC64_HIGHER_S), | ||
575 | MAP64 ("highest", BFD_RELOC_PPC64_HIGHEST), | ||
576 | @@ -1946,14 +1940,10 @@ ppc_elf_suffix (char **str_p, expressionS *exp_p) | ||
577 | MAP64 ("toc@l", BFD_RELOC_PPC64_TOC16_LO), | ||
578 | MAP64 ("toc@h", BFD_RELOC_PPC64_TOC16_HI), | ||
579 | MAP64 ("toc@ha", BFD_RELOC_PPC64_TOC16_HA), | ||
580 | - MAP64 ("dtprel@high", BFD_RELOC_PPC64_DTPREL16_HIGH), | ||
581 | - MAP64 ("dtprel@higha", BFD_RELOC_PPC64_DTPREL16_HIGHA), | ||
582 | MAP64 ("dtprel@higher", BFD_RELOC_PPC64_DTPREL16_HIGHER), | ||
583 | MAP64 ("dtprel@highera", BFD_RELOC_PPC64_DTPREL16_HIGHERA), | ||
584 | MAP64 ("dtprel@highest", BFD_RELOC_PPC64_DTPREL16_HIGHEST), | ||
585 | MAP64 ("dtprel@highesta", BFD_RELOC_PPC64_DTPREL16_HIGHESTA), | ||
586 | - MAP64 ("tprel@high", BFD_RELOC_PPC64_TPREL16_HIGH), | ||
587 | - MAP64 ("tprel@higha", BFD_RELOC_PPC64_TPREL16_HIGHA), | ||
588 | MAP64 ("tprel@higher", BFD_RELOC_PPC64_TPREL16_HIGHER), | ||
589 | MAP64 ("tprel@highera", BFD_RELOC_PPC64_TPREL16_HIGHERA), | ||
590 | MAP64 ("tprel@highest", BFD_RELOC_PPC64_TPREL16_HIGHEST), | ||
591 | @@ -2923,76 +2913,55 @@ md_assemble (char *str) | ||
592 | break; | ||
593 | |||
594 | case BFD_RELOC_LO16: | ||
595 | - ex.X_add_number &= 0xffff; | ||
596 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
597 | + /* X_unsigned is the default, so if the user has done | ||
598 | + something which cleared it, we always produce a | ||
599 | + signed value. */ | ||
600 | + if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED)) | ||
601 | + ex.X_add_number &= 0xffff; | ||
602 | + else | ||
603 | ex.X_add_number = SEX16 (ex.X_add_number); | ||
604 | break; | ||
605 | |||
606 | case BFD_RELOC_HI16: | ||
607 | - if (REPORT_OVERFLOW_HI && ppc_obj64) | ||
608 | - { | ||
609 | - /* PowerPC64 @h is tested for overflow. */ | ||
610 | - ex.X_add_number = (addressT) ex.X_add_number >> 16; | ||
611 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
612 | - { | ||
613 | - addressT sign = (((addressT) -1 >> 16) + 1) >> 1; | ||
614 | - ex.X_add_number | ||
615 | - = ((addressT) ex.X_add_number ^ sign) - sign; | ||
616 | - } | ||
617 | - break; | ||
618 | - } | ||
619 | - /* Fall thru */ | ||
620 | - | ||
621 | - case BFD_RELOC_PPC64_ADDR16_HIGH: | ||
622 | - ex.X_add_number = PPC_HI (ex.X_add_number); | ||
623 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
624 | - ex.X_add_number = SEX16 (ex.X_add_number); | ||
625 | + if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED)) | ||
626 | + ex.X_add_number = PPC_HI (ex.X_add_number); | ||
627 | + else | ||
628 | + ex.X_add_number = SEX16 (PPC_HI (ex.X_add_number)); | ||
629 | break; | ||
630 | |||
631 | case BFD_RELOC_HI16_S: | ||
632 | - if (REPORT_OVERFLOW_HI && ppc_obj64) | ||
633 | - { | ||
634 | - /* PowerPC64 @ha is tested for overflow. */ | ||
635 | - ex.X_add_number | ||
636 | - = ((addressT) ex.X_add_number + 0x8000) >> 16; | ||
637 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
638 | - { | ||
639 | - addressT sign = (((addressT) -1 >> 16) + 1) >> 1; | ||
640 | - ex.X_add_number | ||
641 | - = ((addressT) ex.X_add_number ^ sign) - sign; | ||
642 | - } | ||
643 | - break; | ||
644 | - } | ||
645 | - /* Fall thru */ | ||
646 | - | ||
647 | - case BFD_RELOC_PPC64_ADDR16_HIGHA: | ||
648 | - ex.X_add_number = PPC_HA (ex.X_add_number); | ||
649 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
650 | - ex.X_add_number = SEX16 (ex.X_add_number); | ||
651 | + if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED)) | ||
652 | + ex.X_add_number = PPC_HA (ex.X_add_number); | ||
653 | + else | ||
654 | + ex.X_add_number = SEX16 (PPC_HA (ex.X_add_number)); | ||
655 | break; | ||
656 | |||
657 | case BFD_RELOC_PPC64_HIGHER: | ||
658 | - ex.X_add_number = PPC_HIGHER (ex.X_add_number); | ||
659 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
660 | - ex.X_add_number = SEX16 (ex.X_add_number); | ||
661 | + if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED)) | ||
662 | + ex.X_add_number = PPC_HIGHER (ex.X_add_number); | ||
663 | + else | ||
664 | + ex.X_add_number = SEX16 (PPC_HIGHER (ex.X_add_number)); | ||
665 | break; | ||
666 | |||
667 | case BFD_RELOC_PPC64_HIGHER_S: | ||
668 | - ex.X_add_number = PPC_HIGHERA (ex.X_add_number); | ||
669 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
670 | - ex.X_add_number = SEX16 (ex.X_add_number); | ||
671 | + if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED)) | ||
672 | + ex.X_add_number = PPC_HIGHERA (ex.X_add_number); | ||
673 | + else | ||
674 | + ex.X_add_number = SEX16 (PPC_HIGHERA (ex.X_add_number)); | ||
675 | break; | ||
676 | |||
677 | case BFD_RELOC_PPC64_HIGHEST: | ||
678 | - ex.X_add_number = PPC_HIGHEST (ex.X_add_number); | ||
679 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
680 | - ex.X_add_number = SEX16 (ex.X_add_number); | ||
681 | + if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED)) | ||
682 | + ex.X_add_number = PPC_HIGHEST (ex.X_add_number); | ||
683 | + else | ||
684 | + ex.X_add_number = SEX16 (PPC_HIGHEST (ex.X_add_number)); | ||
685 | break; | ||
686 | |||
687 | case BFD_RELOC_PPC64_HIGHEST_S: | ||
688 | - ex.X_add_number = PPC_HIGHESTA (ex.X_add_number); | ||
689 | - if ((operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
690 | - ex.X_add_number = SEX16 (ex.X_add_number); | ||
691 | + if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED)) | ||
692 | + ex.X_add_number = PPC_HIGHESTA (ex.X_add_number); | ||
693 | + else | ||
694 | + ex.X_add_number = SEX16 (PPC_HIGHESTA (ex.X_add_number)); | ||
695 | break; | ||
696 | } | ||
697 | #endif /* OBJ_ELF */ | ||
698 | @@ -6566,51 +6535,25 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) | ||
699 | fieldval = value & 0xffff; | ||
700 | sign_extend_16: | ||
701 | if (operand != NULL && (operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
702 | - fieldval = SEX16 (fieldval); | ||
703 | + fieldval = (fieldval ^ 0x8000) - 0x8000; | ||
704 | fixP->fx_no_overflow = 1; | ||
705 | break; | ||
706 | |||
707 | - case BFD_RELOC_HI16: | ||
708 | - case BFD_RELOC_HI16_PCREL: | ||
709 | #ifdef OBJ_ELF | ||
710 | - if (REPORT_OVERFLOW_HI && ppc_obj64) | ||
711 | - { | ||
712 | - fieldval = value >> 16; | ||
713 | - if (operand != NULL && (operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
714 | - { | ||
715 | - valueT sign = (((valueT) -1 >> 16) + 1) >> 1; | ||
716 | - fieldval = ((valueT) fieldval ^ sign) - sign; | ||
717 | - } | ||
718 | - break; | ||
719 | - } | ||
720 | - /* Fall thru */ | ||
721 | - | ||
722 | case BFD_RELOC_PPC_VLE_HI16A: | ||
723 | case BFD_RELOC_PPC_VLE_HI16D: | ||
724 | - case BFD_RELOC_PPC64_ADDR16_HIGH: | ||
725 | #endif | ||
726 | + case BFD_RELOC_HI16: | ||
727 | + case BFD_RELOC_HI16_PCREL: | ||
728 | fieldval = PPC_HI (value); | ||
729 | goto sign_extend_16; | ||
730 | |||
731 | - case BFD_RELOC_HI16_S: | ||
732 | - case BFD_RELOC_HI16_S_PCREL: | ||
733 | #ifdef OBJ_ELF | ||
734 | - if (REPORT_OVERFLOW_HI && ppc_obj64) | ||
735 | - { | ||
736 | - fieldval = (value + 0x8000) >> 16; | ||
737 | - if (operand != NULL && (operand->flags & PPC_OPERAND_SIGNED) != 0) | ||
738 | - { | ||
739 | - valueT sign = (((valueT) -1 >> 16) + 1) >> 1; | ||
740 | - fieldval = ((valueT) fieldval ^ sign) - sign; | ||
741 | - } | ||
742 | - break; | ||
743 | - } | ||
744 | - /* Fall thru */ | ||
745 | - | ||
746 | case BFD_RELOC_PPC_VLE_HA16A: | ||
747 | case BFD_RELOC_PPC_VLE_HA16D: | ||
748 | - case BFD_RELOC_PPC64_ADDR16_HIGHA: | ||
749 | #endif | ||
750 | + case BFD_RELOC_HI16_S: | ||
751 | + case BFD_RELOC_HI16_S_PCREL: | ||
752 | fieldval = PPC_HA (value); | ||
753 | goto sign_extend_16; | ||
754 | |||
755 | @@ -6673,14 +6616,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) | ||
756 | case BFD_RELOC_PPC_GOT_DTPREL16_HA: | ||
757 | case BFD_RELOC_PPC64_TPREL16_DS: | ||
758 | case BFD_RELOC_PPC64_TPREL16_LO_DS: | ||
759 | - case BFD_RELOC_PPC64_TPREL16_HIGH: | ||
760 | - case BFD_RELOC_PPC64_TPREL16_HIGHA: | ||
761 | case BFD_RELOC_PPC64_TPREL16_HIGHER: | ||
762 | case BFD_RELOC_PPC64_TPREL16_HIGHERA: | ||
763 | case BFD_RELOC_PPC64_TPREL16_HIGHEST: | ||
764 | case BFD_RELOC_PPC64_TPREL16_HIGHESTA: | ||
765 | - case BFD_RELOC_PPC64_DTPREL16_HIGH: | ||
766 | - case BFD_RELOC_PPC64_DTPREL16_HIGHA: | ||
767 | case BFD_RELOC_PPC64_DTPREL16_DS: | ||
768 | case BFD_RELOC_PPC64_DTPREL16_LO_DS: | ||
769 | case BFD_RELOC_PPC64_DTPREL16_HIGHER: | ||
770 | @@ -6866,8 +6805,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) | ||
771 | case BFD_RELOC_PPC64_HIGHER_S: | ||
772 | case BFD_RELOC_PPC64_HIGHEST: | ||
773 | case BFD_RELOC_PPC64_HIGHEST_S: | ||
774 | - case BFD_RELOC_PPC64_ADDR16_HIGH: | ||
775 | - case BFD_RELOC_PPC64_ADDR16_HIGHA: | ||
776 | break; | ||
777 | |||
778 | case BFD_RELOC_PPC_DTPMOD: | ||
779 | @@ -6944,14 +6881,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) | ||
780 | case BFD_RELOC_PPC64_TOC16_LO: | ||
781 | case BFD_RELOC_PPC64_TOC16_HI: | ||
782 | case BFD_RELOC_PPC64_TOC16_HA: | ||
783 | - case BFD_RELOC_PPC64_DTPREL16_HIGH: | ||
784 | - case BFD_RELOC_PPC64_DTPREL16_HIGHA: | ||
785 | case BFD_RELOC_PPC64_DTPREL16_HIGHER: | ||
786 | case BFD_RELOC_PPC64_DTPREL16_HIGHERA: | ||
787 | case BFD_RELOC_PPC64_DTPREL16_HIGHEST: | ||
788 | case BFD_RELOC_PPC64_DTPREL16_HIGHESTA: | ||
789 | - case BFD_RELOC_PPC64_TPREL16_HIGH: | ||
790 | - case BFD_RELOC_PPC64_TPREL16_HIGHA: | ||
791 | case BFD_RELOC_PPC64_TPREL16_HIGHER: | ||
792 | case BFD_RELOC_PPC64_TPREL16_HIGHERA: | ||
793 | case BFD_RELOC_PPC64_TPREL16_HIGHEST: | ||
794 | diff --git a/gold/powerpc.cc b/gold/powerpc.cc | ||
795 | index 1aa4791..b8e932e 100644 | ||
796 | --- a/gold/powerpc.cc | ||
797 | +++ b/gold/powerpc.cc | ||
798 | @@ -5168,8 +5168,6 @@ Target_powerpc<size, big_endian>::Scan::check_non_pic(Relobj* object, | ||
799 | case elfcpp::R_PPC64_JMP_IREL: | ||
800 | case elfcpp::R_PPC64_ADDR16_DS: | ||
801 | case elfcpp::R_PPC64_ADDR16_LO_DS: | ||
802 | - case elfcpp::R_PPC64_ADDR16_HIGH: | ||
803 | - case elfcpp::R_PPC64_ADDR16_HIGHA: | ||
804 | case elfcpp::R_PPC64_ADDR16_HIGHER: | ||
805 | case elfcpp::R_PPC64_ADDR16_HIGHEST: | ||
806 | case elfcpp::R_PPC64_ADDR16_HIGHERA: | ||
807 | @@ -5178,8 +5176,6 @@ Target_powerpc<size, big_endian>::Scan::check_non_pic(Relobj* object, | ||
808 | case elfcpp::R_POWERPC_ADDR30: | ||
809 | case elfcpp::R_PPC64_TPREL16_DS: | ||
810 | case elfcpp::R_PPC64_TPREL16_LO_DS: | ||
811 | - case elfcpp::R_PPC64_TPREL16_HIGH: | ||
812 | - case elfcpp::R_PPC64_TPREL16_HIGHA: | ||
813 | case elfcpp::R_PPC64_TPREL16_HIGHER: | ||
814 | case elfcpp::R_PPC64_TPREL16_HIGHEST: | ||
815 | case elfcpp::R_PPC64_TPREL16_HIGHERA: | ||
816 | @@ -5354,6 +5350,7 @@ Target_powerpc<size, big_endian>::Scan::local( | ||
817 | case elfcpp::R_POWERPC_GNU_VTINHERIT: | ||
818 | case elfcpp::R_POWERPC_GNU_VTENTRY: | ||
819 | case elfcpp::R_PPC64_TOCSAVE: | ||
820 | + case elfcpp::R_PPC_EMB_MRKREF: | ||
821 | case elfcpp::R_POWERPC_TLS: | ||
822 | break; | ||
823 | |||
824 | @@ -5391,8 +5388,6 @@ Target_powerpc<size, big_endian>::Scan::local( | ||
825 | case elfcpp::R_POWERPC_ADDR16_HI: | ||
826 | case elfcpp::R_POWERPC_ADDR16_HA: | ||
827 | case elfcpp::R_POWERPC_UADDR16: | ||
828 | - case elfcpp::R_PPC64_ADDR16_HIGH: | ||
829 | - case elfcpp::R_PPC64_ADDR16_HIGHA: | ||
830 | case elfcpp::R_PPC64_ADDR16_HIGHER: | ||
831 | case elfcpp::R_PPC64_ADDR16_HIGHERA: | ||
832 | case elfcpp::R_PPC64_ADDR16_HIGHEST: | ||
833 | @@ -5451,35 +5446,31 @@ Target_powerpc<size, big_endian>::Scan::local( | ||
834 | case elfcpp::R_POWERPC_REL16_HI: | ||
835 | case elfcpp::R_POWERPC_REL16_HA: | ||
836 | case elfcpp::R_POWERPC_SECTOFF: | ||
837 | - case elfcpp::R_POWERPC_SECTOFF_LO: | ||
838 | - case elfcpp::R_POWERPC_SECTOFF_HI: | ||
839 | - case elfcpp::R_POWERPC_SECTOFF_HA: | ||
840 | - case elfcpp::R_PPC64_SECTOFF_DS: | ||
841 | - case elfcpp::R_PPC64_SECTOFF_LO_DS: | ||
842 | case elfcpp::R_POWERPC_TPREL16: | ||
843 | + case elfcpp::R_POWERPC_DTPREL16: | ||
844 | + case elfcpp::R_POWERPC_SECTOFF_LO: | ||
845 | case elfcpp::R_POWERPC_TPREL16_LO: | ||
846 | + case elfcpp::R_POWERPC_DTPREL16_LO: | ||
847 | + case elfcpp::R_POWERPC_SECTOFF_HI: | ||
848 | case elfcpp::R_POWERPC_TPREL16_HI: | ||
849 | + case elfcpp::R_POWERPC_DTPREL16_HI: | ||
850 | + case elfcpp::R_POWERPC_SECTOFF_HA: | ||
851 | case elfcpp::R_POWERPC_TPREL16_HA: | ||
852 | - case elfcpp::R_PPC64_TPREL16_DS: | ||
853 | - case elfcpp::R_PPC64_TPREL16_LO_DS: | ||
854 | - case elfcpp::R_PPC64_TPREL16_HIGH: | ||
855 | - case elfcpp::R_PPC64_TPREL16_HIGHA: | ||
856 | + case elfcpp::R_POWERPC_DTPREL16_HA: | ||
857 | + case elfcpp::R_PPC64_DTPREL16_HIGHER: | ||
858 | case elfcpp::R_PPC64_TPREL16_HIGHER: | ||
859 | + case elfcpp::R_PPC64_DTPREL16_HIGHERA: | ||
860 | case elfcpp::R_PPC64_TPREL16_HIGHERA: | ||
861 | + case elfcpp::R_PPC64_DTPREL16_HIGHEST: | ||
862 | case elfcpp::R_PPC64_TPREL16_HIGHEST: | ||
863 | + case elfcpp::R_PPC64_DTPREL16_HIGHESTA: | ||
864 | case elfcpp::R_PPC64_TPREL16_HIGHESTA: | ||
865 | - case elfcpp::R_POWERPC_DTPREL16: | ||
866 | - case elfcpp::R_POWERPC_DTPREL16_LO: | ||
867 | - case elfcpp::R_POWERPC_DTPREL16_HI: | ||
868 | - case elfcpp::R_POWERPC_DTPREL16_HA: | ||
869 | + case elfcpp::R_PPC64_TPREL16_DS: | ||
870 | + case elfcpp::R_PPC64_TPREL16_LO_DS: | ||
871 | case elfcpp::R_PPC64_DTPREL16_DS: | ||
872 | case elfcpp::R_PPC64_DTPREL16_LO_DS: | ||
873 | - case elfcpp::R_PPC64_DTPREL16_HIGH: | ||
874 | - case elfcpp::R_PPC64_DTPREL16_HIGHA: | ||
875 | - case elfcpp::R_PPC64_DTPREL16_HIGHER: | ||
876 | - case elfcpp::R_PPC64_DTPREL16_HIGHERA: | ||
877 | - case elfcpp::R_PPC64_DTPREL16_HIGHEST: | ||
878 | - case elfcpp::R_PPC64_DTPREL16_HIGHESTA: | ||
879 | + case elfcpp::R_PPC64_SECTOFF_DS: | ||
880 | + case elfcpp::R_PPC64_SECTOFF_LO_DS: | ||
881 | case elfcpp::R_PPC64_TLSGD: | ||
882 | case elfcpp::R_PPC64_TLSLD: | ||
883 | break; | ||
884 | @@ -5713,6 +5704,7 @@ Target_powerpc<size, big_endian>::Scan::global( | ||
885 | case elfcpp::R_POWERPC_GNU_VTINHERIT: | ||
886 | case elfcpp::R_POWERPC_GNU_VTENTRY: | ||
887 | case elfcpp::R_PPC_LOCAL24PC: | ||
888 | + case elfcpp::R_PPC_EMB_MRKREF: | ||
889 | case elfcpp::R_POWERPC_TLS: | ||
890 | break; | ||
891 | |||
892 | @@ -5762,8 +5754,6 @@ Target_powerpc<size, big_endian>::Scan::global( | ||
893 | case elfcpp::R_POWERPC_ADDR16_HI: | ||
894 | case elfcpp::R_POWERPC_ADDR16_HA: | ||
895 | case elfcpp::R_POWERPC_UADDR16: | ||
896 | - case elfcpp::R_PPC64_ADDR16_HIGH: | ||
897 | - case elfcpp::R_PPC64_ADDR16_HIGHA: | ||
898 | case elfcpp::R_PPC64_ADDR16_HIGHER: | ||
899 | case elfcpp::R_PPC64_ADDR16_HIGHERA: | ||
900 | case elfcpp::R_PPC64_ADDR16_HIGHEST: | ||
901 | @@ -5897,35 +5887,31 @@ Target_powerpc<size, big_endian>::Scan::global( | ||
902 | case elfcpp::R_POWERPC_REL16_HI: | ||
903 | case elfcpp::R_POWERPC_REL16_HA: | ||
904 | case elfcpp::R_POWERPC_SECTOFF: | ||
905 | - case elfcpp::R_POWERPC_SECTOFF_LO: | ||
906 | - case elfcpp::R_POWERPC_SECTOFF_HI: | ||
907 | - case elfcpp::R_POWERPC_SECTOFF_HA: | ||
908 | - case elfcpp::R_PPC64_SECTOFF_DS: | ||
909 | - case elfcpp::R_PPC64_SECTOFF_LO_DS: | ||
910 | case elfcpp::R_POWERPC_TPREL16: | ||
911 | + case elfcpp::R_POWERPC_DTPREL16: | ||
912 | + case elfcpp::R_POWERPC_SECTOFF_LO: | ||
913 | case elfcpp::R_POWERPC_TPREL16_LO: | ||
914 | + case elfcpp::R_POWERPC_DTPREL16_LO: | ||
915 | + case elfcpp::R_POWERPC_SECTOFF_HI: | ||
916 | case elfcpp::R_POWERPC_TPREL16_HI: | ||
917 | + case elfcpp::R_POWERPC_DTPREL16_HI: | ||
918 | + case elfcpp::R_POWERPC_SECTOFF_HA: | ||
919 | case elfcpp::R_POWERPC_TPREL16_HA: | ||
920 | - case elfcpp::R_PPC64_TPREL16_DS: | ||
921 | - case elfcpp::R_PPC64_TPREL16_LO_DS: | ||
922 | - case elfcpp::R_PPC64_TPREL16_HIGH: | ||
923 | - case elfcpp::R_PPC64_TPREL16_HIGHA: | ||
924 | + case elfcpp::R_POWERPC_DTPREL16_HA: | ||
925 | + case elfcpp::R_PPC64_DTPREL16_HIGHER: | ||
926 | case elfcpp::R_PPC64_TPREL16_HIGHER: | ||
927 | + case elfcpp::R_PPC64_DTPREL16_HIGHERA: | ||
928 | case elfcpp::R_PPC64_TPREL16_HIGHERA: | ||
929 | + case elfcpp::R_PPC64_DTPREL16_HIGHEST: | ||
930 | case elfcpp::R_PPC64_TPREL16_HIGHEST: | ||
931 | + case elfcpp::R_PPC64_DTPREL16_HIGHESTA: | ||
932 | case elfcpp::R_PPC64_TPREL16_HIGHESTA: | ||
933 | - case elfcpp::R_POWERPC_DTPREL16: | ||
934 | - case elfcpp::R_POWERPC_DTPREL16_LO: | ||
935 | - case elfcpp::R_POWERPC_DTPREL16_HI: | ||
936 | - case elfcpp::R_POWERPC_DTPREL16_HA: | ||
937 | + case elfcpp::R_PPC64_TPREL16_DS: | ||
938 | + case elfcpp::R_PPC64_TPREL16_LO_DS: | ||
939 | case elfcpp::R_PPC64_DTPREL16_DS: | ||
940 | case elfcpp::R_PPC64_DTPREL16_LO_DS: | ||
941 | - case elfcpp::R_PPC64_DTPREL16_HIGH: | ||
942 | - case elfcpp::R_PPC64_DTPREL16_HIGHA: | ||
943 | - case elfcpp::R_PPC64_DTPREL16_HIGHER: | ||
944 | - case elfcpp::R_PPC64_DTPREL16_HIGHERA: | ||
945 | - case elfcpp::R_PPC64_DTPREL16_HIGHEST: | ||
946 | - case elfcpp::R_PPC64_DTPREL16_HIGHESTA: | ||
947 | + case elfcpp::R_PPC64_SECTOFF_DS: | ||
948 | + case elfcpp::R_PPC64_SECTOFF_LO_DS: | ||
949 | case elfcpp::R_PPC64_TLSGD: | ||
950 | case elfcpp::R_PPC64_TLSLD: | ||
951 | break; | ||
952 | @@ -7098,10 +7084,8 @@ Target_powerpc<size, big_endian>::Relocate::relocate( | ||
953 | |||
954 | case elfcpp::R_PPC64_TPREL16_DS: | ||
955 | case elfcpp::R_PPC64_TPREL16_LO_DS: | ||
956 | - case elfcpp::R_PPC64_TPREL16_HIGH: | ||
957 | - case elfcpp::R_PPC64_TPREL16_HIGHA: | ||
958 | if (size != 64) | ||
959 | - // R_PPC_TLSGD, R_PPC_TLSLD, R_PPC_EMB_RELST_LO, R_PPC_EMB_RELST_HI | ||
960 | + // R_PPC_TLSGD and R_PPC_TLSLD | ||
961 | break; | ||
962 | case elfcpp::R_POWERPC_TPREL16: | ||
963 | case elfcpp::R_POWERPC_TPREL16_LO: | ||
964 | @@ -7131,8 +7115,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate( | ||
965 | case elfcpp::R_POWERPC_DTPREL16_HI: | ||
966 | case elfcpp::R_POWERPC_DTPREL16_HA: | ||
967 | case elfcpp::R_POWERPC_DTPREL: | ||
968 | - case elfcpp::R_PPC64_DTPREL16_HIGH: | ||
969 | - case elfcpp::R_PPC64_DTPREL16_HIGHA: | ||
970 | // tls symbol values are relative to tls_segment()->vaddr() | ||
971 | value -= dtp_offset; | ||
972 | break; | ||
973 | @@ -7273,34 +7255,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate( | ||
974 | overflow = Reloc::CHECK_BITFIELD; | ||
975 | break; | ||
976 | |||
977 | - case elfcpp::R_POWERPC_ADDR16_HI: | ||
978 | - case elfcpp::R_POWERPC_ADDR16_HA: | ||
979 | - case elfcpp::R_POWERPC_GOT16_HI: | ||
980 | - case elfcpp::R_POWERPC_GOT16_HA: | ||
981 | - case elfcpp::R_POWERPC_PLT16_HI: | ||
982 | - case elfcpp::R_POWERPC_PLT16_HA: | ||
983 | - case elfcpp::R_POWERPC_SECTOFF_HI: | ||
984 | - case elfcpp::R_POWERPC_SECTOFF_HA: | ||
985 | - case elfcpp::R_PPC64_TOC16_HI: | ||
986 | - case elfcpp::R_PPC64_TOC16_HA: | ||
987 | - case elfcpp::R_PPC64_PLTGOT16_HI: | ||
988 | - case elfcpp::R_PPC64_PLTGOT16_HA: | ||
989 | - case elfcpp::R_POWERPC_TPREL16_HI: | ||
990 | - case elfcpp::R_POWERPC_TPREL16_HA: | ||
991 | - case elfcpp::R_POWERPC_DTPREL16_HI: | ||
992 | - case elfcpp::R_POWERPC_DTPREL16_HA: | ||
993 | - case elfcpp::R_POWERPC_GOT_TLSGD16_HI: | ||
994 | - case elfcpp::R_POWERPC_GOT_TLSGD16_HA: | ||
995 | - case elfcpp::R_POWERPC_GOT_TLSLD16_HI: | ||
996 | - case elfcpp::R_POWERPC_GOT_TLSLD16_HA: | ||
997 | - case elfcpp::R_POWERPC_GOT_TPREL16_HI: | ||
998 | - case elfcpp::R_POWERPC_GOT_TPREL16_HA: | ||
999 | - case elfcpp::R_POWERPC_GOT_DTPREL16_HI: | ||
1000 | - case elfcpp::R_POWERPC_GOT_DTPREL16_HA: | ||
1001 | - case elfcpp::R_POWERPC_REL16_HI: | ||
1002 | - case elfcpp::R_POWERPC_REL16_HA: | ||
1003 | - if (size == 32) | ||
1004 | - break; | ||
1005 | case elfcpp::R_POWERPC_REL24: | ||
1006 | case elfcpp::R_PPC_PLTREL24: | ||
1007 | case elfcpp::R_PPC_LOCAL24PC: | ||
1008 | @@ -7334,6 +7288,7 @@ Target_powerpc<size, big_endian>::Relocate::relocate( | ||
1009 | case elfcpp::R_POWERPC_TLS: | ||
1010 | case elfcpp::R_POWERPC_GNU_VTINHERIT: | ||
1011 | case elfcpp::R_POWERPC_GNU_VTENTRY: | ||
1012 | + case elfcpp::R_PPC_EMB_MRKREF: | ||
1013 | break; | ||
1014 | |||
1015 | case elfcpp::R_PPC64_ADDR64: | ||
1016 | @@ -7404,12 +7359,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate( | ||
1017 | status = Reloc::addr16_u(view, value, overflow); | ||
1018 | break; | ||
1019 | |||
1020 | - case elfcpp::R_PPC64_ADDR16_HIGH: | ||
1021 | - case elfcpp::R_PPC64_TPREL16_HIGH: | ||
1022 | - case elfcpp::R_PPC64_DTPREL16_HIGH: | ||
1023 | - if (size == 32) | ||
1024 | - // R_PPC_EMB_MRKREF, R_PPC_EMB_RELST_LO, R_PPC_EMB_RELST_HA | ||
1025 | - goto unsupp; | ||
1026 | case elfcpp::R_POWERPC_ADDR16_HI: | ||
1027 | case elfcpp::R_POWERPC_REL16_HI: | ||
1028 | case elfcpp::R_PPC64_TOC16_HI: | ||
1029 | @@ -7424,12 +7373,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate( | ||
1030 | Reloc::addr16_hi(view, value); | ||
1031 | break; | ||
1032 | |||
1033 | - case elfcpp::R_PPC64_ADDR16_HIGHA: | ||
1034 | - case elfcpp::R_PPC64_TPREL16_HIGHA: | ||
1035 | - case elfcpp::R_PPC64_DTPREL16_HIGHA: | ||
1036 | - if (size == 32) | ||
1037 | - // R_PPC_EMB_RELSEC16, R_PPC_EMB_RELST_HI, R_PPC_EMB_BIT_FLD | ||
1038 | - goto unsupp; | ||
1039 | case elfcpp::R_POWERPC_ADDR16_HA: | ||
1040 | case elfcpp::R_POWERPC_REL16_HA: | ||
1041 | case elfcpp::R_PPC64_TOC16_HA: | ||
1042 | @@ -7554,6 +7497,11 @@ Target_powerpc<size, big_endian>::Relocate::relocate( | ||
1043 | case elfcpp::R_PPC64_PLT16_LO_DS: | ||
1044 | case elfcpp::R_PPC64_PLTGOT16_DS: | ||
1045 | case elfcpp::R_PPC64_PLTGOT16_LO_DS: | ||
1046 | + case elfcpp::R_PPC_EMB_RELSEC16: | ||
1047 | + case elfcpp::R_PPC_EMB_RELST_LO: | ||
1048 | + case elfcpp::R_PPC_EMB_RELST_HI: | ||
1049 | + case elfcpp::R_PPC_EMB_RELST_HA: | ||
1050 | + case elfcpp::R_PPC_EMB_BIT_FLD: | ||
1051 | case elfcpp::R_PPC_EMB_RELSDA: | ||
1052 | case elfcpp::R_PPC_TOC16: | ||
1053 | default: | ||
1054 | diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h | ||
1055 | index 78d947b..5888460 100644 | ||
1056 | --- a/include/elf/ppc64.h | ||
1057 | +++ b/include/elf/ppc64.h | ||
1058 | @@ -141,14 +141,6 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type) | ||
1059 | RELOC_NUMBER (R_PPC64_TLSLD, 108) | ||
1060 | RELOC_NUMBER (R_PPC64_TOCSAVE, 109) | ||
1061 | |||
1062 | -/* Added when HA and HI relocs were changed to report overflows. */ | ||
1063 | - RELOC_NUMBER (R_PPC64_ADDR16_HIGH, 110) | ||
1064 | - RELOC_NUMBER (R_PPC64_ADDR16_HIGHA, 111) | ||
1065 | - RELOC_NUMBER (R_PPC64_TPREL16_HIGH, 112) | ||
1066 | - RELOC_NUMBER (R_PPC64_TPREL16_HIGHA, 113) | ||
1067 | - RELOC_NUMBER (R_PPC64_DTPREL16_HIGH, 114) | ||
1068 | - RELOC_NUMBER (R_PPC64_DTPREL16_HIGHA, 115) | ||
1069 | - | ||
1070 | #ifndef RELOC_MACROS_GEN_FUNC | ||
1071 | /* Fake relocation only used internally by ld. */ | ||
1072 | RELOC_NUMBER (R_PPC64_LO_DS_OPT, 128) | ||
1073 | @@ -169,9 +161,8 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type) | ||
1074 | |||
1075 | END_RELOC_NUMBERS (R_PPC64_max) | ||
1076 | |||
1077 | -#define IS_PPC64_TLS_RELOC(R) \ | ||
1078 | - (((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA) \ | ||
1079 | - || ((R) >= R_PPC64_TPREL16_HIGH && (R) <= R_PPC64_DTPREL16_HIGHA)) | ||
1080 | +#define IS_PPC64_TLS_RELOC(R) \ | ||
1081 | + ((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA) | ||
1082 | |||
1083 | |||
1084 | /* e_flags bits specifying ABI. | ||
1085 | -- | ||
1086 | 1.7.9.5 | ||
1087 | |||
diff --git a/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bbappend b/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bbappend new file mode 100644 index 0000000..c9eeb4e --- /dev/null +++ b/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bbappend | |||
@@ -0,0 +1 @@ | |||
BBCLASSEXTEND += " nativesdk" | |||
diff --git a/recipes-devtools/valgrind/files/disable-power-isa-2.07-check.patch b/recipes-devtools/valgrind/files/disable-power-isa-2.07-check.patch new file mode 100644 index 0000000..88a8a54 --- /dev/null +++ b/recipes-devtools/valgrind/files/disable-power-isa-2.07-check.patch | |||
@@ -0,0 +1,48 @@ | |||
1 | valgrind: Disable Power ISA 2.07 check | ||
2 | |||
3 | The Power ISA 2.07 check fails when not supported by both machine | ||
4 | architecture and gcc. | ||
5 | |||
6 | Upstream-Status: Inappropriate [disable feature] | ||
7 | |||
8 | Signed-off-by: Gabriel Barbu <gabriel.barbu@enea.com> | ||
9 | |||
10 | --- a/configure.ac 2014-05-05 17:06:29.674630565 +0200 | ||
11 | +++ b/configure.ac 2014-05-06 13:16:47.525598513 +0200 | ||
12 | @@ -1316,18 +1316,25 @@ | ||
13 | AM_CONDITIONAL(BUILD_DFP_TESTS, test x$ac_gcc_have_dfp_type = xyes) | ||
14 | |||
15 | # isa 2.07 checking | ||
16 | -AC_MSG_CHECKING([that assembler knows ISA 2.07 ]) | ||
17 | +AC_ARG_ENABLE([isa_2_07_check], | ||
18 | + [AS_HELP_STRING([--disable-isa_2_07_check], | ||
19 | + [disable Power ISA 2.07 check])], | ||
20 | + [], | ||
21 | + [disable_isa_2_07_check=no]) | ||
22 | |||
23 | -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||
24 | -]], [[ | ||
25 | - __asm__ __volatile__("mtvsrd 1,2 "); | ||
26 | -]])], [ | ||
27 | -ac_asm_have_isa_2_07=yes | ||
28 | -AC_MSG_RESULT([yes]) | ||
29 | -], [ | ||
30 | -ac_asm_have_isa_2_07=no | ||
31 | -AC_MSG_RESULT([no]) | ||
32 | -]) | ||
33 | +AS_IF([test "x$disable_isa_2_07_check" = xno], | ||
34 | + [AC_MSG_CHECKING([that assembler knows ISA 2.07 ]) | ||
35 | + | ||
36 | + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||
37 | + ]], [[ | ||
38 | + __asm__ __volatile__("mtvsrd 1,2 "); | ||
39 | + ]])], [ | ||
40 | + ac_asm_have_isa_2_07=yes | ||
41 | + AC_MSG_RESULT([yes]) | ||
42 | + ], [ | ||
43 | + ac_asm_have_isa_2_07=no | ||
44 | + AC_MSG_RESULT([no]) | ||
45 | + ])]) | ||
46 | |||
47 | AM_CONDITIONAL(HAS_ISA_2_07, test x$ac_asm_have_isa_2_07 = xyes) | ||
48 | |||
diff --git a/recipes-devtools/valgrind/valgrind_3.9.0.bbappend b/recipes-devtools/valgrind/valgrind_3.9.0.bbappend new file mode 100644 index 0000000..4af368d --- /dev/null +++ b/recipes-devtools/valgrind/valgrind_3.9.0.bbappend | |||
@@ -0,0 +1,30 @@ | |||
1 | EXTRA_OECONF_append_b4860qds-64b = " --disable-isa_2_07_check" | ||
2 | |||
3 | FILESEXTRAPATHS_prepend := "${THISDIR}/files:" | ||
4 | |||
5 | SRC_URI += "\ | ||
6 | file://disable-power-isa-2.07-check.patch \ | ||
7 | " | ||
8 | |||
9 | do_compile_ptest_zc702-zynq7-prt() { | ||
10 | # This is to replace the ptest building part that fails due to | ||
11 | # internal compiler error on ARM targets (LXCR-3358) | ||
12 | echo "" | ||
13 | } | ||
14 | |||
15 | do_compile_ptest_zc702-zynq7() { | ||
16 | # This is to replace the ptest building part that fails due to | ||
17 | # internal compiler error on ARM targets (LXCR-3358) | ||
18 | echo "" | ||
19 | } | ||
20 | |||
21 | do_compile_ptest_k2hk-evm() { | ||
22 | # This is to replace the ptest building part that fails due to | ||
23 | # internal compiler error on ARM targets (LXCR-3358) | ||
24 | echo "" | ||
25 | } | ||
26 | do_compile_ptest_proliant-m800() { | ||
27 | # This is to replace the ptest building part that fails due to | ||
28 | # internal compiler error on ARM targets (LXCR-3358) | ||
29 | echo "" | ||
30 | } | ||
diff --git a/recipes-enea/count-ticks/count-ticks/run-ptest b/recipes-enea/count-ticks/count-ticks/run-ptest new file mode 100644 index 0000000..b54364a --- /dev/null +++ b/recipes-enea/count-ticks/count-ticks/run-ptest | |||
@@ -0,0 +1,23 @@ | |||
1 | #!/bin/sh -eu | ||
2 | |||
3 | fail () { | ||
4 | printf "%s\n" "$*" | ||
5 | exit | ||
6 | } | ||
7 | |||
8 | count_ticks --cpu 0 --start || fail "Failed starting tick counting" | ||
9 | find /usr -name dummy 2>&1 > /dev/null | ||
10 | |||
11 | nr_ticks=$(count_ticks --batch --cpu 0 --end) | ||
12 | |||
13 | if [ $? -ne 0 ]; then | ||
14 | echo "FAIL: count_ticks failed execution" | ||
15 | exit | ||
16 | fi | ||
17 | |||
18 | if [ $nr_ticks == 0 ]; then | ||
19 | echo "FAIL: count_ticks didn't see any ticks" | ||
20 | exit | ||
21 | fi | ||
22 | |||
23 | echo "PASS: count_ticks" | ||
diff --git a/recipes-enea/count-ticks/count-ticks_1.1.bb b/recipes-enea/count-ticks/count-ticks_1.1.bb new file mode 100644 index 0000000..caa6ed7 --- /dev/null +++ b/recipes-enea/count-ticks/count-ticks_1.1.bb | |||
@@ -0,0 +1,25 @@ | |||
1 | SUMMARY = "Tick count tool" | ||
2 | DESCRIPTION = "Count number of kernel ticks during command execution." | ||
3 | SECTION = "utils" | ||
4 | LICENSE = "BSD" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b52bab7a403562f36be803f11489f1a4" | ||
6 | |||
7 | PR = "r1" | ||
8 | |||
9 | RDEPENDS_${PN} = "bash" | ||
10 | |||
11 | SRC_URI = "git://github.com/OpenEneaLinux/rt-tools.git;branch=master \ | ||
12 | file://run-ptest \ | ||
13 | " | ||
14 | |||
15 | SRCREV = "0fa0a8e084fe68e77a1f0968f2fbfa993292ae9c" | ||
16 | |||
17 | inherit ptest | ||
18 | |||
19 | S = "${WORKDIR}/git" | ||
20 | |||
21 | FILES_${PN} += "/bin/*" | ||
22 | |||
23 | do_install() { | ||
24 | install -D ${S}/install/bin/count_ticks ${D}/usr/bin/count_ticks | ||
25 | } | ||
diff --git a/recipes-enea/linx/linx-2.6.6/liblinx_free_buf.patch b/recipes-enea/linx/linx-2.6.6/liblinx_free_buf.patch new file mode 100644 index 0000000..42f3e99 --- /dev/null +++ b/recipes-enea/linx/linx-2.6.6/liblinx_free_buf.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | Fixed buffer free problem when sending between threads in the same process. | ||
2 | |||
3 | Upstream-Status: Not Applicable | ||
4 | |||
5 | Signed-off-by: Huimin She <huimin.she@enea.com> | ||
6 | |||
7 | --- | ||
8 | diff -rup a/liblinx/linx.c b/liblinx/linx.c | ||
9 | --- a/liblinx/linx.c 2014-04-17 13:40:30.000000000 +0200 | ||
10 | +++ b/liblinx/linx.c 2014-07-24 14:22:30.264648751 +0200 | ||
11 | @@ -711,7 +711,10 @@ int linx_send(LINX * linx, union LINX_SI | ||
12 | if (ret == 0) { | ||
13 | sig_adm->sndrcv = sndrcv; | ||
14 | } | ||
15 | - adm_free_buf(linx, sig_adm); | ||
16 | + if (ret != 1) { | ||
17 | + /* Don't free signals sent back to itself, they are needed later! */ | ||
18 | + adm_free_buf(linx, sig_adm); | ||
19 | + } | ||
20 | out: | ||
21 | /* Take signal pointer from user. */ | ||
22 | *sig = LINX_NIL; | ||
diff --git a/recipes-enea/linx/linx-2.6.6/liblinx_nobase.patch b/recipes-enea/linx/linx-2.6.6/liblinx_nobase.patch new file mode 100644 index 0000000..05a4b7e --- /dev/null +++ b/recipes-enea/linx/linx-2.6.6/liblinx_nobase.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From 5ea9763286eb43e01c4ef2f3db59e13367a77138 Mon Sep 17 00:00:00 2001 | ||
2 | From: jack zhang <jack.zhang@enea.com> | ||
3 | Date: Mon, 17 Dec 2012 03:52:11 +0100 | ||
4 | Subject: [PATCH] LXCR-995 As an Enea sales person, I want LINX added to Enea | ||
5 | Linux | ||
6 | Signed-off-by: jack zhang <jack.zhang@enea.com> | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | For details, see LINXCR-1518 | ||
10 | --- | ||
11 | liblinx/Makefile.am | 2 +- | ||
12 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
13 | |||
14 | diff --git a/liblinx/Makefile.am b/liblinx/Makefile.am | ||
15 | index 8559e43..3ce47d6 100644 | ||
16 | --- a/liblinx/Makefile.am | ||
17 | +++ b/liblinx/Makefile.am | ||
18 | @@ -47,7 +47,7 @@ dist_man7_MANS = $(LINXROOT)/doc/man7/linx.7 | ||
19 | |||
20 | include $(LINXROOT)/flags.am | ||
21 | |||
22 | -include_HEADERS = \ | ||
23 | +nobase_include_HEADERS = \ | ||
24 | $(LINXROOT)/include/linx.h \ | ||
25 | $(LINXROOT)/include/linx_ioctl.h \ | ||
26 | $(LINXROOT)/include/linx_socket.h \ | ||
27 | -- | ||
28 | 1.7.5.4 | ||
29 | |||
diff --git a/recipes-enea/linx/linx-2.6.6/linxcfg_nobase.patch b/recipes-enea/linx/linx-2.6.6/linxcfg_nobase.patch new file mode 100644 index 0000000..af4b477 --- /dev/null +++ b/recipes-enea/linx/linx-2.6.6/linxcfg_nobase.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | From a3b3dc8117490ddfcc2081fca5ff663e4157a106 Mon Sep 17 00:00:00 2001 | ||
2 | From: jack zhang <jack.zhang@enea.com> | ||
3 | Date: Mon, 17 Dec 2012 03:57:15 +0100 | ||
4 | Subject: [PATCH] LXCR-995 As an Enea sales person, I want LINX added to Enea | ||
5 | Linux | ||
6 | Signed-off-by: jack zhang <jack.zhang@enea.com> | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | For details, see LINXCR-1518 | ||
10 | --- | ||
11 | linxcfg/Makefile.am | 4 +--- | ||
12 | 1 files changed, 1 insertions(+), 3 deletions(-) | ||
13 | |||
14 | diff --git a/linxcfg/Makefile.am b/linxcfg/Makefile.am | ||
15 | index 9fc8e84..287c71b 100644 | ||
16 | --- a/linxcfg/Makefile.am | ||
17 | +++ b/linxcfg/Makefile.am | ||
18 | @@ -24,16 +24,14 @@ dist_man1_MANS = \ | ||
19 | $(LINXROOT)/doc/man1/mkcmclcon.1 \ | ||
20 | $(LINXROOT)/doc/man1/rmcmclcon.1 | ||
21 | |||
22 | -include_HEADERS = \ | ||
23 | +nobase_include_HEADERS = \ | ||
24 | $(LINXROOT)/include/linxcfg.h \ | ||
25 | $(LINXROOT)/include/linux/ethcm_db_ioctl.h \ | ||
26 | $(LINXROOT)/include/linux/rlnh_db_ioctl.h \ | ||
27 | $(LINXROOT)/include/linux/tcpcm_db_ioctl.h \ | ||
28 | $(LINXROOT)/include/linux/shmcm_db_ioctl.h \ | ||
29 | - $(LINXROOT)/include/linux/riocm_db_ioctl.h \ | ||
30 | $(LINXROOT)/include/linux/cmcl_db_ioctl.h \ | ||
31 | $(LINXROOT)/include/linux/riocm_db_ioctl.h \ | ||
32 | - $(LINXROOT)/include/linux/cmcl_db_ioctl.h \ | ||
33 | $(LINXROOT)/include/db_ioctl.h \ | ||
34 | $(LINXROOT)/include/ethcm_db_ioctl.h \ | ||
35 | $(LINXROOT)/include/rlnh_db_ioctl.h \ | ||
36 | -- | ||
37 | 1.7.5.4 | ||
38 | |||
diff --git a/recipes-enea/linx/linx-mod-2.6.6/linx-kernel-modules.patch b/recipes-enea/linx/linx-mod-2.6.6/linx-kernel-modules.patch new file mode 100644 index 0000000..f29019b --- /dev/null +++ b/recipes-enea/linx/linx-mod-2.6.6/linx-kernel-modules.patch | |||
@@ -0,0 +1,288 @@ | |||
1 | Use KERNEL_SRC and modules_install to get use of pokys build kernel modules. | ||
2 | fix version.h problem. | ||
3 | |||
4 | Signed-off-by: Anders Roxell <anders.roxell@enea.com> | ||
5 | |||
6 | Upstream-status: Pending | ||
7 | --- | ||
8 | diff -uNr a/cmcl/Makefile b/cmcl/Makefile | ||
9 | --- a/cmcl/Makefile 2013-02-25 15:46:59.777325274 +0100 | ||
10 | +++ b/cmcl/Makefile 2013-02-25 15:57:22.038398316 +0100 | ||
11 | @@ -3,8 +3,8 @@ | ||
12 | LINX ?= $(CURDIR)/../../.. | ||
13 | include $(LINX)/net/linx/config.mk | ||
14 | |||
15 | -KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
16 | -VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
17 | +KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
18 | +VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
19 | |||
20 | ifneq ($(VENDOR_VERSION), "") | ||
21 | EXTRA_CFLAGS += -DGFP_IS_INT | ||
22 | @@ -38,15 +38,17 @@ | ||
23 | |||
24 | linx_cmcl-y += cmcl.o | ||
25 | |||
26 | +SRC := $(shell pwd) | ||
27 | + | ||
28 | modules: | ||
29 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules | ||
30 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules | ||
31 | $(CP) linx_cmcl.ko .. | ||
32 | |||
33 | clean: | ||
34 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean | ||
35 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean | ||
36 | $(LINXRM) Module.symvers Module.markers modules.order ../linx_cmcl.ko | ||
37 | |||
38 | -install: modules | ||
39 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install | ||
40 | +modules_install: modules | ||
41 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install | ||
42 | depmod | ||
43 | |||
44 | diff -uNr a/config.mk b/config.mk | ||
45 | --- a/config.mk 2013-02-25 15:46:59.781325113 +0100 | ||
46 | +++ b/config.mk 2013-02-25 16:13:30.672459997 +0100 | ||
47 | @@ -3,7 +3,7 @@ | ||
48 | # CROSS_COMPILE is cross compiler prefix (including full path) | ||
49 | CROSS_COMPILE ?= | ||
50 | # KERNEL is the path to your kernel sources | ||
51 | -KERNEL ?= | ||
52 | +KERNEL_SRC ?= | ||
53 | |||
54 | # Host architecture | ||
55 | HOST_ARCH ?= $(patsubst i%86,i386,$(shell uname -m)) | ||
56 | @@ -26,13 +26,13 @@ | ||
57 | endif | ||
58 | |||
59 | ifeq ($(ARCH),$(HOST_ARCH)) | ||
60 | -ifndef KERNEL | ||
61 | -KERNEL := $(HOST_KERNEL) | ||
62 | +ifndef KERNEL_SRC | ||
63 | +KERNEL_SRC := $(HOST_KERNEL) | ||
64 | endif | ||
65 | else | ||
66 | -ifndef KERNEL | ||
67 | +ifndef KERNEL_SRC | ||
68 | ifdef NEED_KERNEL | ||
69 | -$(error Please define KERNEL.) | ||
70 | +$(error Please define KERNEL_SRC.) | ||
71 | endif | ||
72 | endif | ||
73 | endif | ||
74 | @@ -53,8 +53,8 @@ | ||
75 | ifdef CROSS_COMPILE | ||
76 | $(ECHO) "# CROSS_COMPILE=$(CROSS_COMPILE)" | ||
77 | endif | ||
78 | -ifdef KERNEL | ||
79 | - $(ECHO) "# KERNEL=$(KERNEL)" | ||
80 | +ifdef KERNEL_SRC | ||
81 | + $(ECHO) "# KERNEL_SRC=$(KERNEL_SRC)" | ||
82 | endif | ||
83 | ifdef VERBOSE | ||
84 | $(ECHO) "# VERBOSE=$(VERBOSE)" | ||
85 | @@ -62,7 +62,7 @@ | ||
86 | $(ECHO) "# VERBOSE=no" | ||
87 | endif | ||
88 | |||
89 | -export ARCH CROSS_COMPILE KERNEL LINX | ||
90 | +export ARCH CROSS_COMPILE KERNEL_SRC LINX | ||
91 | |||
92 | .PHONY: echo_config | ||
93 | |||
94 | @@ -117,5 +117,5 @@ | ||
95 | # in the mercury linux distribution. | ||
96 | EXTRA_CFLAGS += -I$(KDIR)/arch/ppc -DRLNH_ALIGN_ANY | ||
97 | else # x86 | ||
98 | -KDIR := /lib/modules/$(shell uname -r)/build | ||
99 | +KDIR := /lib/modules/$(KERNEL_VERSION)/build | ||
100 | endif | ||
101 | diff -uNr a/ecm/Makefile b/ecm/Makefile | ||
102 | --- a/ecm/Makefile 2013-02-25 15:46:59.781325113 +0100 | ||
103 | +++ b/ecm/Makefile 2013-02-25 16:11:13.754388313 +0100 | ||
104 | @@ -5,8 +5,8 @@ | ||
105 | LINX ?= $(CURDIR)/../../.. | ||
106 | include $(LINX)/net/linx/config.mk | ||
107 | |||
108 | -KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
109 | -VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
110 | +KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
111 | +VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
112 | |||
113 | ifneq ($(VENDOR_VERSION), "") | ||
114 | EXTRA_CFLAGS += -DGFP_IS_INT | ||
115 | @@ -43,14 +43,16 @@ | ||
116 | linx_eth_cm-y += ecm_rx.o | ||
117 | linx_eth_cm-y += ecm_kutils.o | ||
118 | |||
119 | +SRC := $(shell pwd) | ||
120 | + | ||
121 | modules: | ||
122 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules | ||
123 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules | ||
124 | $(CP) linx_eth_cm.ko .. | ||
125 | |||
126 | clean: | ||
127 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean | ||
128 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean | ||
129 | $(LINXRM) Module.symvers Module.markers modules.order ../linx_eth_cm.ko | ||
130 | |||
131 | -install: modules | ||
132 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install | ||
133 | +modules_install: modules | ||
134 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install | ||
135 | depmod | ||
136 | diff -uNr a/Makefile b/Makefile | ||
137 | --- a/Makefile 2013-02-25 15:46:59.781325113 +0100 | ||
138 | +++ b/Makefile 2013-02-25 15:53:22.752757899 +0100 | ||
139 | @@ -63,9 +63,9 @@ | ||
140 | 2_6_11 := 132619 | ||
141 | |||
142 | # Vendors version of kernel, needed to catch certain back patches | ||
143 | -VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
144 | +VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
145 | # Main line kernel version | ||
146 | -KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
147 | +KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
148 | |||
149 | # | ||
150 | # 'gt_or_eq' | ||
151 | @@ -140,14 +140,16 @@ | ||
152 | obj-y += riocm/ | ||
153 | obj-y += cmcl/ | ||
154 | |||
155 | +SRC := $(shell pwd) | ||
156 | + | ||
157 | modules: | ||
158 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules | ||
159 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules | ||
160 | $(CP) */*.ko . | ||
161 | clean: | ||
162 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean | ||
163 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean | ||
164 | $(LINXRM) Module.symvers Module.markers modules.order | ||
165 | |||
166 | -install: modules | ||
167 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install | ||
168 | +modules_install: modules | ||
169 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install | ||
170 | depmod | ||
171 | |||
172 | diff -uNr a/riocm/Makefile b/riocm/Makefile | ||
173 | --- a/riocm/Makefile 2013-02-25 15:46:59.781325113 +0100 | ||
174 | +++ b/riocm/Makefile 2013-02-25 16:05:33.381125565 +0100 | ||
175 | @@ -5,8 +5,8 @@ | ||
176 | LINX ?= $(CURDIR)/../../.. | ||
177 | include $(LINX)/net/linx/config.mk | ||
178 | |||
179 | -KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
180 | -VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
181 | +KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
182 | +VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
183 | |||
184 | ifneq ($(VENDOR_VERSION), "") | ||
185 | EXTRA_CFLAGS += -DGFP_IS_INT | ||
186 | @@ -43,15 +43,17 @@ | ||
187 | linx_rio_cm-y += rio_rx.o | ||
188 | linx_rio_cm-y += rio_kutils.o | ||
189 | |||
190 | +SRC := $(shell pwd) | ||
191 | + | ||
192 | modules: | ||
193 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules | ||
194 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules | ||
195 | $(CP) linx_rio_cm.ko .. | ||
196 | |||
197 | clean: | ||
198 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean | ||
199 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean | ||
200 | $(LINXRM) Module.symvers Module.markers modules.order ../linx_rio_cm.ko | ||
201 | |||
202 | -install: modules | ||
203 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install | ||
204 | +modules_install: modules | ||
205 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install | ||
206 | depmod | ||
207 | |||
208 | diff -uNr a/shmcm/Makefile b/shmcm/Makefile | ||
209 | --- a/shmcm/Makefile 2013-02-25 15:46:59.781325113 +0100 | ||
210 | +++ b/shmcm/Makefile 2013-02-25 16:03:58.113250295 +0100 | ||
211 | @@ -5,8 +5,8 @@ | ||
212 | LINX ?= $(CURDIR)/../../.. | ||
213 | include $(LINX)/net/linx/config.mk | ||
214 | |||
215 | -KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
216 | -VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
217 | +KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
218 | +VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
219 | |||
220 | ifneq ($(VENDOR_VERSION), "") | ||
221 | EXTRA_CFLAGS += -DGFP_IS_INT | ||
222 | @@ -60,7 +60,7 @@ | ||
223 | -I$(LINX)/net/linx/include \ | ||
224 | -I$(LINX)/net/linx/shmcm | ||
225 | |||
226 | -INSTALLDIR = /lib/modules/`uname -r`/kernel/net/linx | ||
227 | +INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/net/linx | ||
228 | MODULES = linx_shm_cm.ko | ||
229 | |||
230 | obj-m := linx_shm_cm.o | ||
231 | @@ -70,15 +70,17 @@ | ||
232 | linx_shm_cm-y += shmcm_tx.o | ||
233 | linx_shm_cm-y += shmcm_kutils.o | ||
234 | |||
235 | +SRC := $(shell pwd) | ||
236 | + | ||
237 | modules: | ||
238 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules | ||
239 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules | ||
240 | $(CP) linx_shm_cm.ko .. | ||
241 | |||
242 | clean: | ||
243 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean | ||
244 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean | ||
245 | $(LINXRM) Module.symvers Module.markers modules.order ../linx_shm_cm.ko | ||
246 | |||
247 | -install: modules | ||
248 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install | ||
249 | +modules_install: modules | ||
250 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install | ||
251 | depmod | ||
252 | |||
253 | diff -uNr a/tcp_cm/Makefile b/tcp_cm/Makefile | ||
254 | --- a/tcp_cm/Makefile 2013-02-25 15:46:59.781325113 +0100 | ||
255 | +++ b/tcp_cm/Makefile 2013-02-25 16:10:09.097187839 +0100 | ||
256 | @@ -3,8 +3,8 @@ | ||
257 | LINX ?= $(CURDIR)/../../.. | ||
258 | include $(LINX)/net/linx/config.mk | ||
259 | |||
260 | -KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
261 | -VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h) | ||
262 | +KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
263 | +VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h) | ||
264 | |||
265 | ifneq ($(VENDOR_VERSION), "") | ||
266 | EXTRA_CFLAGS += -DGFP_IS_INT | ||
267 | @@ -38,15 +38,17 @@ | ||
268 | |||
269 | linx_tcp_cm-y += tcp_cm.o | ||
270 | |||
271 | +SRC := $(shell pwd) | ||
272 | + | ||
273 | modules: | ||
274 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules | ||
275 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules | ||
276 | $(CP) linx_tcp_cm.ko .. | ||
277 | |||
278 | clean: | ||
279 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean | ||
280 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean | ||
281 | $(LINXRM) Module.symvers Module.markers modules.order ../linx_tcp_cm.ko | ||
282 | |||
283 | -install: modules | ||
284 | - $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install | ||
285 | +modules_install: modules | ||
286 | + $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install | ||
287 | depmod | ||
288 | |||
diff --git a/recipes-enea/linx/linx-mod-2.6.6/support-for-3.11-kernel-versions.patch b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.11-kernel-versions.patch new file mode 100644 index 0000000..d6f9106 --- /dev/null +++ b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.11-kernel-versions.patch | |||
@@ -0,0 +1,206 @@ | |||
1 | From 20294330f08283d28b6092b568156e29b1792328 Mon Sep 17 00:00:00 2001 | ||
2 | From: Adrian Dudau <adrian.dudau@enea.com> | ||
3 | Date: Thu, 12 Dec 2013 11:23:24 +0100 | ||
4 | Subject: [PATCH] support for 3.11 kernel versions | ||
5 | |||
6 | Fixed NULL pointer dereference in ecm_conn.c | ||
7 | |||
8 | Signed-off-by: Adrian Dudau <adrian.dudau@enea.com> | ||
9 | --- | ||
10 | cfg/db_proc.c | 23 ++++++++++++++++++----- | ||
11 | ecm/ecm_conn.c | 11 ++++++++--- | ||
12 | ipc/hunt.c | 24 ++++++++++++++++++++++++ | ||
13 | 3 files changed, 50 insertions(+), 8 deletions(-) | ||
14 | |||
15 | diff --git a/cfg/db_proc.c b/cfg/db_proc.c | ||
16 | index c062a3d..bad0353 100644 | ||
17 | --- a/cfg/db_proc.c | ||
18 | +++ b/cfg/db_proc.c | ||
19 | @@ -41,6 +41,12 @@ | ||
20 | #include "db_format.h" | ||
21 | #include <asm/uaccess.h> | ||
22 | |||
23 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) | ||
24 | +#define PDE_INODE_NAME(inode) PDE_DATA(inode) | ||
25 | +#else | ||
26 | +#define PDE_INODE_NAME(inode) PDE(inode)->name | ||
27 | +#endif | ||
28 | + | ||
29 | struct db_seq { | ||
30 | const struct db_template *template; | ||
31 | struct list_head *list; | ||
32 | @@ -148,11 +154,11 @@ static int db_proc_open(struct inode *inode, struct file *file) | ||
33 | if (status != 0) | ||
34 | goto out_20; | ||
35 | |||
36 | - status = db_template_get(PDE(inode)->name, &p->template); | ||
37 | + status = db_template_get(PDE_INODE_NAME(inode), &p->template); | ||
38 | if (status != 0) | ||
39 | goto out_20; | ||
40 | |||
41 | - status = db_list_get(PDE(inode)->name, &p->list); | ||
42 | + status = db_list_get(PDE_INODE_NAME(inode), &p->list); | ||
43 | if (status != 0) | ||
44 | goto out_10; | ||
45 | |||
46 | @@ -161,7 +167,7 @@ static int db_proc_open(struct inode *inode, struct file *file) | ||
47 | return 0; | ||
48 | |||
49 | out_10: | ||
50 | - db_template_put(PDE(inode)->name, &p->template); | ||
51 | + db_template_put(PDE_INODE_NAME(inode), &p->template); | ||
52 | out_20: | ||
53 | kfree(p); | ||
54 | return status; | ||
55 | @@ -217,11 +223,11 @@ static int db_proc_release(struct inode *inode, struct file *file) | ||
56 | s = file->private_data; | ||
57 | p = s->private; | ||
58 | |||
59 | - status = db_list_put(PDE(inode)->name, &p->list); | ||
60 | + status = db_list_put(PDE_INODE_NAME(inode), &p->list); | ||
61 | if (status != 0) | ||
62 | return status; | ||
63 | |||
64 | - status = db_template_put(PDE(inode)->name, &p->template); | ||
65 | + status = db_template_put(PDE_INODE_NAME(inode), &p->template); | ||
66 | if (status != 0) | ||
67 | return status; | ||
68 | |||
69 | @@ -258,14 +264,21 @@ int db_proc_add(const char *name) | ||
70 | { | ||
71 | struct proc_dir_entry *pde; | ||
72 | |||
73 | +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) | ||
74 | + pde = proc_create_data(name, 0777, db_proc_root, | ||
75 | + &db_proc_file_ops, (void *)name); | ||
76 | +#else | ||
77 | pde = create_proc_entry(name, 0777, db_proc_root); | ||
78 | +#endif | ||
79 | if (pde == NULL) | ||
80 | return -EINVAL; | ||
81 | |||
82 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) | ||
83 | pde->owner = THIS_MODULE; | ||
84 | #endif | ||
85 | +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) | ||
86 | pde->proc_fops = &db_proc_file_ops; | ||
87 | +#endif | ||
88 | return 0; | ||
89 | } | ||
90 | EXPORT_SYMBOL(db_proc_add); | ||
91 | diff --git a/ecm/ecm_conn.c b/ecm/ecm_conn.c | ||
92 | index aaf5161..b81abd1 100644 | ||
93 | --- a/ecm/ecm_conn.c | ||
94 | +++ b/ecm/ecm_conn.c | ||
95 | @@ -905,8 +905,9 @@ static void free_ecm_connection(struct RlnhLinkObj *co) | ||
96 | { | ||
97 | /* Undo alloc_ecm_connection(). */ | ||
98 | if (co != NULL) { | ||
99 | - if (list_empty(&co->ecm_dev->conn_list)) | ||
100 | - dev_remove_pack(&co->ecm_dev->pt); | ||
101 | + if (co->ecm_dev != NULL) | ||
102 | + if (list_empty(&co->ecm_dev->conn_list)) | ||
103 | + dev_remove_pack(&co->ecm_dev->pt); | ||
104 | if (co->con_name != NULL) | ||
105 | kfree(co->con_name); | ||
106 | if (co->dev_name != NULL) | ||
107 | @@ -1315,7 +1316,11 @@ static int net_event(struct notifier_block *nb, unsigned long event, void *data) | ||
108 | struct ecm_work_net_event *p; | ||
109 | |||
110 | (void)nb; | ||
111 | - dev = data; | ||
112 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) | ||
113 | + dev = netdev_notifier_info_to_dev(data); | ||
114 | +#else | ||
115 | + dev = data; | ||
116 | +#endif | ||
117 | |||
118 | w = alloc_ecm_work(sizeof(*p), ECM_WORK_NET_EVENT, GFP_KERNEL); | ||
119 | if (w == NULL) | ||
120 | diff --git a/ipc/hunt.c b/ipc/hunt.c | ||
121 | index 843a893..f4564eb 100644 | ||
122 | --- a/ipc/hunt.c | ||
123 | +++ b/ipc/hunt.c | ||
124 | @@ -743,7 +743,9 @@ static inline struct sock *__locate_name(const char *name, | ||
125 | unsigned hash, uint32_t hunter_spid) | ||
126 | { | ||
127 | struct sock *s, *s_found = NULL; | ||
128 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0)) | ||
129 | struct hlist_node *node; | ||
130 | +#endif | ||
131 | |||
132 | linx_trace_enter(LINX_TRACEGROUP_IPC, | ||
133 | "%s, %d, 0x%x, 0x%x", name, len, hash, hunter_spid); | ||
134 | @@ -753,7 +755,11 @@ static inline struct sock *__locate_name(const char *name, | ||
135 | |||
136 | /* Traverse the list of sockets in the specified hash slot to find a | ||
137 | match. */ | ||
138 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) | ||
139 | + sk_for_each(s, &linx_sockets_bound[hash]) { | ||
140 | +#else | ||
141 | sk_for_each(s, node, &linx_sockets_bound[hash]) { | ||
142 | +#endif | ||
143 | linx_check_sock(s); | ||
144 | |||
145 | /* If the length of the aname are the same, potential match was found. */ | ||
146 | @@ -1122,7 +1128,9 @@ int linx_info_sockets(struct linx_info_sockets *isockets, | ||
147 | LINX_SPID __user * spids) | ||
148 | { | ||
149 | struct sock *sk; | ||
150 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0)) | ||
151 | const struct hlist_node *node; | ||
152 | +#endif | ||
153 | int i, tot_sockets = 0, tot_sockets_tmp = 0, max_sockets; | ||
154 | |||
155 | LINX_ASSERT(isockets != NULL); | ||
156 | @@ -1131,7 +1139,11 @@ int linx_info_sockets(struct linx_info_sockets *isockets, | ||
157 | |||
158 | read_lock_bh(&linx_socket_bound_unbound_lock); | ||
159 | /* Count the number of sockets the needs to be returned. */ | ||
160 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) | ||
161 | + sk_for_each(sk, &linx_sockets_unbound) { | ||
162 | +#else | ||
163 | sk_for_each(sk, node, &linx_sockets_unbound) { | ||
164 | +#endif | ||
165 | if (linx_sk(sk)->type == LINX_TYPE_REMOTE && isockets->remote) { | ||
166 | tot_sockets_tmp++; | ||
167 | } else if (linx_sk(sk)->type == LINX_TYPE_LOCAL && | ||
168 | @@ -1156,7 +1168,11 @@ int linx_info_sockets(struct linx_info_sockets *isockets, | ||
169 | |||
170 | tot_sockets_tmp = 0; | ||
171 | |||
172 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) | ||
173 | + sk_for_each(sk, &linx_sockets_unbound) { | ||
174 | +#else | ||
175 | sk_for_each(sk, node, &linx_sockets_unbound) { | ||
176 | +#endif | ||
177 | LINX_SPID spid = linx_sock_to_spid(sk); | ||
178 | if (linx_sk(sk)->type == LINX_TYPE_REMOTE && | ||
179 | isockets->remote) { | ||
180 | @@ -1197,7 +1213,11 @@ int linx_info_sockets(struct linx_info_sockets *isockets, | ||
181 | for (i = 0; i < LINX_HASH_SIZE; i++) { | ||
182 | tot_sockets_tmp = 0; | ||
183 | read_lock_bh(&linx_socket_bound_unbound_lock); | ||
184 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) | ||
185 | + sk_for_each(sk, &linx_sockets_bound[i]) { | ||
186 | +#else | ||
187 | sk_for_each(sk, node, &linx_sockets_bound[i]) { | ||
188 | +#endif | ||
189 | if (linx_sk(sk)->type == LINX_TYPE_REMOTE && | ||
190 | isockets->remote) { | ||
191 | tot_sockets_tmp++; | ||
192 | @@ -1222,7 +1242,11 @@ int linx_info_sockets(struct linx_info_sockets *isockets, | ||
193 | } | ||
194 | |||
195 | tot_sockets_tmp = 0; | ||
196 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) | ||
197 | + sk_for_each(sk, &linx_sockets_bound[i]) { | ||
198 | +#else | ||
199 | sk_for_each(sk, node, &linx_sockets_bound[i]) { | ||
200 | +#endif | ||
201 | LINX_SPID spid = linx_sock_to_spid(sk); | ||
202 | if (linx_sk(sk)->type == LINX_TYPE_REMOTE && | ||
203 | isockets->remote) { | ||
204 | -- | ||
205 | 1.8.3.2 | ||
206 | |||
diff --git a/recipes-enea/linx/linx-mod-2.6.6/support-for-3.12-kernels.patch b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.12-kernels.patch new file mode 100644 index 0000000..60c69a8 --- /dev/null +++ b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.12-kernels.patch | |||
@@ -0,0 +1,24 @@ | |||
1 | Fixed build errors for linx_mod with kernel 3.12.X. | ||
2 | |||
3 | For details, see [LXCR-3427]. | ||
4 | |||
5 | Upstream-Status: Not Applicable | ||
6 | |||
7 | Signed-off-by: Liviu Gheorghisan <liviu.gheorghisan@enea.com> | ||
8 | |||
9 | --- | ||
10 | --- a/af_linx.c 2014-04-02 10:19:44.000000000 +0300 | ||
11 | +++ b/af_linx.c 2014-07-23 17:40:01.629687646 +0300 | ||
12 | @@ -1034,8 +1034,11 @@ | ||
13 | failure: | ||
14 | *errcode = err; | ||
15 | return NULL; | ||
16 | -#else | ||
17 | +#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0) | ||
18 | return sock_alloc_send_pskb(sk, 0, data_len, 0, errcode); | ||
19 | +#else | ||
20 | + /* max_page_order == 0 => no paged allocations */ | ||
21 | + return sock_alloc_send_pskb(sk, 0, data_len, 0, errcode, 0); | ||
22 | #endif | ||
23 | } | ||
24 | |||
diff --git a/recipes-enea/linx/linx-mod-2.6.6/support-for-3.15-kernels.patch b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.15-kernels.patch new file mode 100644 index 0000000..80118a4 --- /dev/null +++ b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.15-kernels.patch | |||
@@ -0,0 +1,60 @@ | |||
1 | Fixed build errors for linx-mod with kernel >= 3.15.0 | ||
2 | |||
3 | Upstream-Status: Not Applicable | ||
4 | |||
5 | Signed-off-by: Huimin She <huimin.she@enea.com> | ||
6 | |||
7 | --- | ||
8 | diff -rup a/af_linx.c b/af_linx.c | ||
9 | --- a/af_linx.c 2014-07-25 16:22:23.295570583 +0200 | ||
10 | +++ b/af_linx.c 2014-07-25 16:22:23.299570583 +0200 | ||
11 | @@ -743,7 +743,11 @@ setup_receive_filter(struct sock *sk, st | ||
12 | /* This function is called to wake up a receiving socket when it is sleeping | ||
13 | * waiting for a new message in poll or select. | ||
14 | */ | ||
15 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0)) | ||
16 | static void linx_data_ready(struct sock *sk, int len) | ||
17 | +#else | ||
18 | +static void linx_data_ready(struct sock *sk) | ||
19 | +#endif | ||
20 | { | ||
21 | linx_check_sock(sk); | ||
22 | |||
23 | @@ -1401,7 +1405,11 @@ linx_do_legacy_sendmsg(struct sock *sk, | ||
24 | LINX_SOCK_STAT_QUEUE_SIGNAL(to, payload_size); | ||
25 | #endif | ||
26 | /* Wake up the receiver, if it sleeps and wait for the signal. */ | ||
27 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0)) | ||
28 | to->sk_data_ready(to, payload_size); | ||
29 | +#else | ||
30 | + to->sk_data_ready(to); | ||
31 | +#endif | ||
32 | |||
33 | return 0; | ||
34 | out: | ||
35 | @@ -1577,7 +1585,11 @@ linx_do_sendmsg(struct sock *sk, | ||
36 | LINX_SOCK_STAT_QUEUE_SIGNAL(to, payload_size); | ||
37 | #endif | ||
38 | /* Wake up the receiver, if it sleeps and wait for the signal. */ | ||
39 | - to->sk_data_ready(to, payload_size); | ||
40 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0)) | ||
41 | + to->sk_data_ready(to, payload_size); | ||
42 | +#else | ||
43 | + to->sk_data_ready(to); | ||
44 | +#endif | ||
45 | |||
46 | return 0; | ||
47 | out: | ||
48 | @@ -1636,7 +1648,11 @@ int __linx_do_sendmsg_skb_to_local_sk(st | ||
49 | LINX_SOCK_STAT_QUEUE_SIGNAL(to, payload_size); | ||
50 | #endif | ||
51 | /* Wake up the receiver, if it sleeps and waits for the signal. */ | ||
52 | - to->sk_data_ready(to, payload_size); | ||
53 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0)) | ||
54 | + to->sk_data_ready(to, payload_size); | ||
55 | +#else | ||
56 | + to->sk_data_ready(to); | ||
57 | +#endif | ||
58 | |||
59 | return 0; | ||
60 | } | ||
diff --git a/recipes-enea/linx/linx-mod_2.6.6.bb b/recipes-enea/linx/linx-mod_2.6.6.bb new file mode 100644 index 0000000..18adef9 --- /dev/null +++ b/recipes-enea/linx/linx-mod_2.6.6.bb | |||
@@ -0,0 +1,34 @@ | |||
1 | SUMMARY = "LINX for Linux fast IPC" | ||
2 | DESCRIPTION = "LINX is a distributed communication protocol stack for transparent inter node and interprocess communication for a heterogeneous mix of systems." | ||
3 | HOMEPAGE = "http://linx.sourceforge.net/" | ||
4 | |||
5 | SECTION = "kernel/modules" | ||
6 | |||
7 | LICENSE = "GPLv2" | ||
8 | LIC_FILES_CHKSUM = "file://../../COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" | ||
9 | |||
10 | DEPENDS = "linux-libc-headers linx" | ||
11 | RRECOMMENDS_${PN} = "linx kmod" | ||
12 | |||
13 | SRC_URI = "http://linux.enea.com/linx/linx-${PV}.tar.gz \ | ||
14 | file://support-for-3.12-kernels.patch \ | ||
15 | file://support-for-3.15-kernels.patch" | ||
16 | |||
17 | SRC_URI[md5sum] = "f6d7e103eee0807cacf73aa20cf95571" | ||
18 | SRC_URI[sha256sum] = "a8fa3fe221e883ecb6afaa001652c96080a474b95e8d37c3bcf3e0c2ae618799" | ||
19 | |||
20 | S = "${WORKDIR}/linx-${PV}/net/linx" | ||
21 | |||
22 | inherit module | ||
23 | |||
24 | module_do_compile_prepend () { | ||
25 | |||
26 | HAS_LOADABLE_MODULES=$(cat ${STAGING_KERNEL_DIR}/.config | grep "CONFIG_MODULES=y") | ||
27 | |||
28 | if [[ ${#HAS_LOADABLE_MODULES} -eq 0 ]] ; then | ||
29 | echo "The specified Linux kernel has no support for pluggable modules (CONFIG_MODULES=y). Enable it before baking this." | ||
30 | exit 1 | ||
31 | fi | ||
32 | |||
33 | do_make_scripts | ||
34 | } | ||
diff --git a/recipes-enea/linx/linx.inc b/recipes-enea/linx/linx.inc new file mode 100644 index 0000000..3160cfb --- /dev/null +++ b/recipes-enea/linx/linx.inc | |||
@@ -0,0 +1,23 @@ | |||
1 | SUMMARY = "LINX for Linux fast IPC" | ||
2 | DESCRIPTION = "LINX is a distributed communication protocol stack for transparent inter node and interprocess communication for a heterogeneous mix of systems." | ||
3 | HOMEPAGE = "http://linx.sourceforge.net/" | ||
4 | SECTION = "system/library" | ||
5 | |||
6 | DEPENDS = "linux-libc-headers virtual/libc" | ||
7 | RRECOMMENDS_${PN} = "linx-mod" | ||
8 | |||
9 | SRC_URI = "http://linux.enea.com/linx/linx-${PV}.tar.gz \ | ||
10 | file://liblinx_free_buf.patch" | ||
11 | |||
12 | SRC_URI[md5sum] = "f6d7e103eee0807cacf73aa20cf95571" | ||
13 | SRC_URI[sha256sum] = "a8fa3fe221e883ecb6afaa001652c96080a474b95e8d37c3bcf3e0c2ae618799" | ||
14 | |||
15 | S = "${WORKDIR}/linx-${PV}" | ||
16 | |||
17 | inherit autotools-brokensep | ||
18 | |||
19 | do_install_append () { | ||
20 | mkdir -p ${D}/etc | ||
21 | install -m 644 ${S}/linxgw/linxgws/example.conf ${D}/etc/linxgws.conf | ||
22 | } | ||
23 | |||
diff --git a/recipes-enea/linx/linx_2.6.6.bb b/recipes-enea/linx/linx_2.6.6.bb new file mode 100644 index 0000000..79f7ed7 --- /dev/null +++ b/recipes-enea/linx/linx_2.6.6.bb | |||
@@ -0,0 +1,6 @@ | |||
1 | require linx.inc | ||
2 | LICENSE = "BSD" | ||
3 | |||
4 | PR = "r0" | ||
5 | |||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" | ||
diff --git a/recipes-enea/list2mask/list2mask/run-ptest b/recipes-enea/list2mask/list2mask/run-ptest new file mode 100644 index 0000000..9eb6c2f --- /dev/null +++ b/recipes-enea/list2mask/list2mask/run-ptest | |||
@@ -0,0 +1,15 @@ | |||
1 | #!/bin/sh -eu | ||
2 | |||
3 | mask=$(list2mask --cpus 2-3,5,7-8) | ||
4 | |||
5 | if [ $? -ne 0 ]; then | ||
6 | echo "FAIL: list2mask failed to execute" | ||
7 | exit | ||
8 | fi | ||
9 | |||
10 | if [ "$mask" != "1ac" ]; then | ||
11 | echo "FAIL: list2mask returns mask '$mask', expected '1ac'" | ||
12 | exit | ||
13 | fi | ||
14 | |||
15 | echo "PASS: list2mask" | ||
diff --git a/recipes-enea/list2mask/list2mask_1.0.bb b/recipes-enea/list2mask/list2mask_1.0.bb new file mode 100644 index 0000000..d72bcda --- /dev/null +++ b/recipes-enea/list2mask/list2mask_1.0.bb | |||
@@ -0,0 +1,25 @@ | |||
1 | SUMMARY = "Translate CPU list to a CPU mask" | ||
2 | DESCRIPTION = "Translate CPU list given on command line to a hexadecimal CPU mask. Can use kernel boot parameters isolcpus or nohz_full as input as well as a list given on command line." | ||
3 | SECTION = "utils" | ||
4 | LICENSE = "BSD" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b52bab7a403562f36be803f11489f1a4" | ||
6 | |||
7 | PR = "r1" | ||
8 | |||
9 | RDEPENDS_${PN} = "bash" | ||
10 | |||
11 | SRC_URI = "git://github.com/OpenEneaLinux/rt-tools.git;branch=master \ | ||
12 | file://run-ptest \ | ||
13 | " | ||
14 | |||
15 | SRCREV = "db6eff03d80c04803fb146939c504b500e16fe2f" | ||
16 | |||
17 | inherit ptest | ||
18 | |||
19 | S = "${WORKDIR}/git" | ||
20 | |||
21 | FILES_${PN} += "/bin/*" | ||
22 | |||
23 | do_install() { | ||
24 | install -D ${S}/install/bin/${PN} ${D}/usr/bin/${PN} | ||
25 | } | ||
diff --git a/recipes-enea/partrt/partrt/run-ptest b/recipes-enea/partrt/partrt/run-ptest new file mode 100644 index 0000000..b84af18 --- /dev/null +++ b/recipes-enea/partrt/partrt/run-ptest | |||
@@ -0,0 +1,9 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ./test_partition.py target -v | ||
4 | |||
5 | if [ $? -eq 0 ]; then | ||
6 | echo "PASS: test_partition" | ||
7 | else | ||
8 | echo "FAIL: test_partition" | ||
9 | fi | ||
diff --git a/recipes-enea/partrt/partrt_1.1.bb b/recipes-enea/partrt/partrt_1.1.bb new file mode 100644 index 0000000..8113805 --- /dev/null +++ b/recipes-enea/partrt/partrt_1.1.bb | |||
@@ -0,0 +1,30 @@ | |||
1 | SUMMARY = "CPU partitioning tool" | ||
2 | DESCRIPTION = "partrt is a tool for dividing a SMP Linux system into a real time domain and a non-real time domain." | ||
3 | SECTION = "utils" | ||
4 | LICENSE = "BSD" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b52bab7a403562f36be803f11489f1a4" | ||
6 | |||
7 | RDEPENDS_${PN} = "bash" | ||
8 | RDEPENDS_${PN}-ptest += "python" | ||
9 | |||
10 | SRC_URI = "git://github.com/OpenEneaLinux/rt-tools.git;branch=master \ | ||
11 | file://run-ptest \ | ||
12 | " | ||
13 | |||
14 | SRCREV = "cbe36a4946a2b3bb4927ca3b8ac800111ae9ce49" | ||
15 | |||
16 | inherit ptest | ||
17 | |||
18 | S = "${WORKDIR}/git" | ||
19 | |||
20 | FILES_${PN} += "/bin/*" | ||
21 | |||
22 | do_install() { | ||
23 | install -d ${D}/usr/bin | ||
24 | install ${S}/install/bin/partrt ${D}/usr/bin | ||
25 | } | ||
26 | |||
27 | do_install_ptest() { | ||
28 | install ${S}/test/test_partition.py ${D}${PTEST_PATH} | ||
29 | sed -i s/target/${MACHINE}/ ${D}${PTEST_PATH}/run-ptest | ||
30 | } | ||
diff --git a/recipes-extended/libuio/libuio/run-ptest b/recipes-extended/libuio/libuio/run-ptest new file mode 100644 index 0000000..46c80b5 --- /dev/null +++ b/recipes-extended/libuio/libuio/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | echo "SKIP: no upstream test" | ||
3 | |||
diff --git a/recipes-extended/libuio/libuio_git.bb b/recipes-extended/libuio/libuio_git.bb new file mode 100644 index 0000000..216c678 --- /dev/null +++ b/recipes-extended/libuio/libuio_git.bb | |||
@@ -0,0 +1,31 @@ | |||
1 | SUMMARY = "libUIO" | ||
2 | DESCRIPTION = "Provide a generic framework for handling devices in userspace." | ||
3 | HOMEPAGE = "https://www.osadl.org/UIO.uio.0.html" | ||
4 | SECTION = "libs" | ||
5 | LICENSE = "GPLv2" | ||
6 | |||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" | ||
8 | |||
9 | SRCREV = "cc233857ba1613801e7218d07127d19608a99702" | ||
10 | PR = "r0" | ||
11 | PV = "1.0+git${SRCPV}" | ||
12 | |||
13 | SRC_URI = "git://git.linutronix.de/projects/libUIO;protocol=git \ | ||
14 | file://run-ptest" | ||
15 | |||
16 | DEPENDS = "virtual/libc" | ||
17 | |||
18 | S = "${WORKDIR}/git" | ||
19 | |||
20 | inherit autotools | ||
21 | |||
22 | do_configure_prepend () { | ||
23 | touch ${S}/ChangeLog | ||
24 | } | ||
25 | |||
26 | do_install_append () { | ||
27 | if [ "${PN}" = "${BPN}" -a ${PTEST_ENABLED} = "1" ]; then | ||
28 | mkdir -p ${D}${PTEST_PATH} | ||
29 | install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH} | ||
30 | fi | ||
31 | } | ||
diff --git a/recipes-extended/ltp/ltp_20140422.bbappend b/recipes-extended/ltp/ltp_20140422.bbappend new file mode 100644 index 0000000..59a4341 --- /dev/null +++ b/recipes-extended/ltp/ltp_20140422.bbappend | |||
@@ -0,0 +1,3 @@ | |||
1 | do_compile_prepend () { | ||
2 | ( make -C ${B}/testcases/open_posix_testsuite generate-makefiles conformance-all tools-all functional-all stress-all ) | ||
3 | } | ||
diff --git a/recipes-kernel/linux/enea-common.inc b/recipes-kernel/linux/enea-common.inc new file mode 100644 index 0000000..5de0749 --- /dev/null +++ b/recipes-kernel/linux/enea-common.inc | |||
@@ -0,0 +1,12 @@ | |||
1 | FILESEXTRAPATHS_prepend := "${THISDIR}/files:" | ||
2 | |||
3 | def format_file_uri(d): | ||
4 | substrlist = d.getVar("ENEA_KERN_FRAGMENTS").split() | ||
5 | ostr = '' | ||
6 | for substr in substrlist: | ||
7 | ostr = ostr + " file://" + substr | ||
8 | return ostr.lstrip() | ||
9 | |||
10 | ENEA_KERN_FRAGMENTS ??= "" | ||
11 | |||
12 | SRC_URI += "${@format_file_uri(d)}" | ||
diff --git a/recipes-kernel/linux/files/cfg/00001-embedded.cfg b/recipes-kernel/linux/files/cfg/00001-embedded.cfg new file mode 100644 index 0000000..2f0e6bf --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00001-embedded.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_EMBEDDED=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00002-root_nfs.cfg b/recipes-kernel/linux/files/cfg/00002-root_nfs.cfg new file mode 100644 index 0000000..f8d8748 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00002-root_nfs.cfg | |||
@@ -0,0 +1,7 @@ | |||
1 | CONFIG_NETWORK_FILESYSTEMS=y | ||
2 | CONFIG_NFS_USE_KERNEL_DNS=y | ||
3 | CONFIG_ROOT_NFS=y | ||
4 | CONFIG_NFS_FS=y | ||
5 | CONFIG_NFS_V3=y | ||
6 | CONFIG_NFS_V4=y | ||
7 | CONFIG_NFSD=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00003-fuse.cfg b/recipes-kernel/linux/files/cfg/00003-fuse.cfg new file mode 100644 index 0000000..43e95f2 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00003-fuse.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_FUSE_FS=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00004-systemtap.cfg b/recipes-kernel/linux/files/cfg/00004-systemtap.cfg new file mode 100644 index 0000000..88c278c --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00004-systemtap.cfg | |||
@@ -0,0 +1,6 @@ | |||
1 | CONFIG_DEBUG_INFO=y | ||
2 | CONFIG_KPROBES=y | ||
3 | CONFIG_RELAY=y | ||
4 | CONFIG_DEBUG_FS=y | ||
5 | CONFIG_MODULES=y | ||
6 | CONFIG_MODULE_UNLOAD=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00005-pramfs.cfg b/recipes-kernel/linux/files/cfg/00005-pramfs.cfg new file mode 100644 index 0000000..21aabc1 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00005-pramfs.cfg | |||
@@ -0,0 +1,4 @@ | |||
1 | CONFIG_MISC_FILESYSTEMS=y | ||
2 | CONFIG_PRAMFS=y | ||
3 | CONFIG_PRAMFS_XATTR=y | ||
4 | CONFIG_PRAMFS_TEST_MODULE=m | ||
diff --git a/recipes-kernel/linux/files/cfg/00006-with_modules.cfg b/recipes-kernel/linux/files/cfg/00006-with_modules.cfg new file mode 100644 index 0000000..f4b3ae2 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00006-with_modules.cfg | |||
@@ -0,0 +1,5 @@ | |||
1 | CONFIG_MODULES=y | ||
2 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
3 | CONFIG_MODULE_UNLOAD=y | ||
4 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
5 | CONFIG_MODVERSIONS=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00007-oprofile.cfg b/recipes-kernel/linux/files/cfg/00007-oprofile.cfg new file mode 100644 index 0000000..959e94b --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00007-oprofile.cfg | |||
@@ -0,0 +1,4 @@ | |||
1 | CONFIG_PROFILING=y | ||
2 | CONFIG_OPROFILE=m | ||
3 | CONFIG_PROFILE_ALL_BRANCHES=y | ||
4 | CONFIG_OPROFILE_NMI_TIMER=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00008-uio_m.cfg b/recipes-kernel/linux/files/cfg/00008-uio_m.cfg new file mode 100644 index 0000000..d82eee4 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00008-uio_m.cfg | |||
@@ -0,0 +1,3 @@ | |||
1 | CONFIG_UIO=m | ||
2 | CONFIG_UIO_PDRV=m | ||
3 | CONFIG_UIO_PDRV_GENIRQ=m | ||
diff --git a/recipes-kernel/linux/files/cfg/00009-e500mc_debug.cfg b/recipes-kernel/linux/files/cfg/00009-e500mc_debug.cfg new file mode 100644 index 0000000..eaddbaf --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00009-e500mc_debug.cfg | |||
@@ -0,0 +1,6 @@ | |||
1 | CONFIG_FSL_EMB_PERFMON=y | ||
2 | CONFIG_FSL_EMB_PERF_EVENT=y | ||
3 | CONFIG_FSL_EMB_PERF_EVENT_E500=y | ||
4 | |||
5 | CONFIG_PPC_OF=y | ||
6 | CONFIG_PPC_UDBG_16550=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00010-pramfs-bsc913x.cfg b/recipes-kernel/linux/files/cfg/00010-pramfs-bsc913x.cfg new file mode 100644 index 0000000..1476224 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00010-pramfs-bsc913x.cfg | |||
@@ -0,0 +1,5 @@ | |||
1 | CONFIG_MISC_FILESYSTEMS=y | ||
2 | CONFIG_PRAMFS=y | ||
3 | CONFIG_PRAMFS_TEST=y | ||
4 | CONFIG_TEST_MODULE=m | ||
5 | |||
diff --git a/recipes-kernel/linux/files/cfg/00012-preempt.cfg b/recipes-kernel/linux/files/cfg/00012-preempt.cfg new file mode 100644 index 0000000..43fd0bd --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00012-preempt.cfg | |||
@@ -0,0 +1,9 @@ | |||
1 | CONFIG_GENERIC_LOCKBREAK=y | ||
2 | CONFIG_TREE_PREEMPT_RCU=y | ||
3 | CONFIG_PREEMPT_RCU=y | ||
4 | CONFIG_UNINLINE_SPIN_UNLOCK=y | ||
5 | CONFIG_PREEMPT=y | ||
6 | CONFIG_PREEMPT__LL=y | ||
7 | CONFIG_PREEMPT_COUNT=y | ||
8 | CONFIG_DEBUG_PREEMPT=y | ||
9 | CONFIG_RCU_CPU_STALL_VERBOSE=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00013-localversion.cfg b/recipes-kernel/linux/files/cfg/00013-localversion.cfg new file mode 100644 index 0000000..71481b4 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00013-localversion.cfg | |||
@@ -0,0 +1,2 @@ | |||
1 | CONFIG_LOCALVERSION_AUTO=n | ||
2 | CONFIG_DEFAULT_HOSTNAME="(none)" | ||
diff --git a/recipes-kernel/linux/files/cfg/00014-kgdb.cfg b/recipes-kernel/linux/files/cfg/00014-kgdb.cfg new file mode 100644 index 0000000..f23cfe3 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00014-kgdb.cfg | |||
@@ -0,0 +1,9 @@ | |||
1 | #depends | ||
2 | CONFIG_DEBUG_KERNEL=y | ||
3 | CONFIG_EXPERIMENTAL=y | ||
4 | |||
5 | #configs | ||
6 | CONFIG_KGDB=y | ||
7 | CONFIG_KGDB_SERIAL_CONSOLE=y | ||
8 | CONFIG_KGDB_KDB=y | ||
9 | CONFIG_MAGIC_SYSRQ=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00015-uio.cfg b/recipes-kernel/linux/files/cfg/00015-uio.cfg new file mode 100644 index 0000000..b26593e --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00015-uio.cfg | |||
@@ -0,0 +1,3 @@ | |||
1 | CONFIG_UIO=y | ||
2 | CONFIG_UIO_PDRV=y | ||
3 | CONFIG_UIO_PDRV_GENIRQ=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00016-largefilessupport.cfg b/recipes-kernel/linux/files/cfg/00016-largefilessupport.cfg new file mode 100644 index 0000000..b3fae70 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00016-largefilessupport.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_LBDAF=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00017-preempt_keystone.cfg b/recipes-kernel/linux/files/cfg/00017-preempt_keystone.cfg new file mode 100644 index 0000000..89aea43 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00017-preempt_keystone.cfg | |||
@@ -0,0 +1,7 @@ | |||
1 | CONFIG_TREE_PREEMPT_RCU=y | ||
2 | CONFIG_PREEMPT_RCU=y | ||
3 | CONFIG_UNINLINE_SPIN_UNLOCK=y | ||
4 | CONFIG_PREEMPT=y | ||
5 | CONFIG_PREEMPT_COUNT=y | ||
6 | CONFIG_DEBUG_PREEMPT=y | ||
7 | CONFIG_RCU_CPU_STALL_VERBOSE=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00018-rt.cfg b/recipes-kernel/linux/files/cfg/00018-rt.cfg new file mode 100644 index 0000000..a15c930 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00018-rt.cfg | |||
@@ -0,0 +1,3 @@ | |||
1 | CONFIG_PREEMPT_RT_FULL=y | ||
2 | CONFIG_HZ_1000=y | ||
3 | CONFIG_HZ=1000 | ||
diff --git a/recipes-kernel/linux/files/cfg/00019-i2c.cfg b/recipes-kernel/linux/files/cfg/00019-i2c.cfg new file mode 100644 index 0000000..8dbcc3c --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00019-i2c.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_I2C_CHARDEV=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00021-bootlogd.cfg b/recipes-kernel/linux/files/cfg/00021-bootlogd.cfg new file mode 100644 index 0000000..0d83d11 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00021-bootlogd.cfg | |||
@@ -0,0 +1,2 @@ | |||
1 | CONFIG_LEGACY_PTYS=y | ||
2 | CONFIG_LEGACY_PTY_COUNT=256 | ||
diff --git a/recipes-kernel/linux/files/cfg/00022-mtd_tests.cfg b/recipes-kernel/linux/files/cfg/00022-mtd_tests.cfg new file mode 100644 index 0000000..1477bd7 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00022-mtd_tests.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_MTD_TESTS=m | |||
diff --git a/recipes-kernel/linux/files/cfg/00023-ikconfig.cfg b/recipes-kernel/linux/files/cfg/00023-ikconfig.cfg new file mode 100644 index 0000000..9e7666c --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00023-ikconfig.cfg | |||
@@ -0,0 +1,2 @@ | |||
1 | CONFIG_IKCONFIG=y | ||
2 | CONFIG_IKCONFIG_PROC=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00024-preempt_romley-ivb.cfg b/recipes-kernel/linux/files/cfg/00024-preempt_romley-ivb.cfg new file mode 100644 index 0000000..c9b47ac --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00024-preempt_romley-ivb.cfg | |||
@@ -0,0 +1,8 @@ | |||
1 | CONFIG_TREE_PREEMPT_RCU=y | ||
2 | CONFIG_PREEMPT_RCU=y | ||
3 | CONFIG_RCU_STALL_COMMON=y | ||
4 | CONFIG_UNINLINE_SPIN_UNLOCK=y | ||
5 | CONFIG_PREEMPT=y | ||
6 | CONFIG_PREEMPT_COUNT=y | ||
7 | CONFIG_DEBUG_PREEMPT=y | ||
8 | CONFIG_RCU_CPU_STALL_VERBOSE=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00025-powertop.cfg b/recipes-kernel/linux/files/cfg/00025-powertop.cfg new file mode 100644 index 0000000..655c101 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00025-powertop.cfg | |||
@@ -0,0 +1,13 @@ | |||
1 | CONFIG_EXPERT=y | ||
2 | CONFIG_PROC_FS=y | ||
3 | CONFIG_DEBUG_FS=y | ||
4 | CONFIG_NO_HZ=y | ||
5 | CONFIG_HIGH_RES_TIMERS=y | ||
6 | CONFIG_HPET_TIMER=y | ||
7 | CONFIG_CPU_FREQ=y | ||
8 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||
9 | CONFIG_TIMER_STATS=y | ||
10 | CONFIG_PERF_EVENTS=y | ||
11 | CONFIG_TRACEPOINTS=y | ||
12 | CONFIG_TRACING=y | ||
13 | CONFIG_X86_MSR=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00026-ltp.cfg b/recipes-kernel/linux/files/cfg/00026-ltp.cfg new file mode 100644 index 0000000..e36a9c2 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00026-ltp.cfg | |||
@@ -0,0 +1,3 @@ | |||
1 | CONFIG_TUN=y | ||
2 | CONFIG_KSM=y | ||
3 | CONFIG_NUMA=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00027-lttng.cfg b/recipes-kernel/linux/files/cfg/00027-lttng.cfg new file mode 100644 index 0000000..1334194 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00027-lttng.cfg | |||
@@ -0,0 +1,20 @@ | |||
1 | CONFIG_MODULES=y | ||
2 | CONFIG_KALLSYMS=y | ||
3 | CONFIG_HIGH_RES_TIMERS=y | ||
4 | CONFIG_TRACEPOINTS=y | ||
5 | CONFIG_FTRACE=y | ||
6 | CONFIG_PERF_EVENTS=y | ||
7 | CONFIG_EVENT_TRACING=y | ||
8 | CONFIG_KPROBES=y | ||
9 | CONFIG_KRETPROBES=y | ||
10 | CONFIG_FUNCTION_TRACER=y | ||
11 | CONFIG_FUNCTION_GRAPH_TRACER=y | ||
12 | CONFIG_IRQSOFF_TRACER=y | ||
13 | CONFIG_PREEMPT_TRACER=y | ||
14 | CONFIG_SCHED_TRACER=y | ||
15 | CONFIG_NOP_TRACER=y | ||
16 | CONFIG_CONTEXT_SWITCH_TRACER=y | ||
17 | CONFIG_GENERIC_TRACER=y | ||
18 | CONFIG_TRACER_MAX_TRACE=y | ||
19 | CONFIG_TRACER_SNAPSHOT=y | ||
20 | CONFIG_STACK_TRACER=n | ||
diff --git a/recipes-kernel/linux/files/cfg/00028-perf.cfg b/recipes-kernel/linux/files/cfg/00028-perf.cfg new file mode 100644 index 0000000..5fddec0 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00028-perf.cfg | |||
@@ -0,0 +1,2 @@ | |||
1 | CONFIG_CGROUP_PERF=y | ||
2 | CONFIG_PERF_EVENTS=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00029-devtmpfs.cfg b/recipes-kernel/linux/files/cfg/00029-devtmpfs.cfg new file mode 100644 index 0000000..5e9cf98 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00029-devtmpfs.cfg | |||
@@ -0,0 +1,2 @@ | |||
1 | CONFIG_DEVTMPFS=y | ||
2 | CONFIG_DEVTMPFS_MOUNT=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00030-latencytop.cfg b/recipes-kernel/linux/files/cfg/00030-latencytop.cfg new file mode 100644 index 0000000..0a42694 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00030-latencytop.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_LATENCYTOP=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00031-igb_drv.cfg b/recipes-kernel/linux/files/cfg/00031-igb_drv.cfg new file mode 100644 index 0000000..3498fd0 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00031-igb_drv.cfg | |||
@@ -0,0 +1,3 @@ | |||
1 | CONFIG_IGB=y | ||
2 | CONFIG_IGB_DCA=y | ||
3 | CONFIG_IGBVF=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00032-dpa.cfg b/recipes-kernel/linux/files/cfg/00032-dpa.cfg new file mode 100644 index 0000000..c873cd5 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00032-dpa.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_FSL_FM_MAX_FRAME_SIZE=9600 | |||
diff --git a/recipes-kernel/linux/files/cfg/00033-kprobes.cfg b/recipes-kernel/linux/files/cfg/00033-kprobes.cfg new file mode 100644 index 0000000..e24be27 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00033-kprobes.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_KPROBES=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00034-cpusets.cfg b/recipes-kernel/linux/files/cfg/00034-cpusets.cfg new file mode 100644 index 0000000..ec8fad4 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00034-cpusets.cfg | |||
@@ -0,0 +1,3 @@ | |||
1 | CONFIG_CGROUPS=y | ||
2 | CONFIG_CPUSETS=y | ||
3 | CONFIG_CGROUP_PERF=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00035-netfilter.cfg b/recipes-kernel/linux/files/cfg/00035-netfilter.cfg new file mode 100644 index 0000000..2dfdba9 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00035-netfilter.cfg | |||
@@ -0,0 +1,113 @@ | |||
1 | CONFIG_NETFILTER=y | ||
2 | CONFIG_IP_NF_IPTABLES=y | ||
3 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y | ||
4 | CONFIG_BRIDGE_NF_EBTABLES=y | ||
5 | CONFIG_IP_VS=y | ||
6 | CONFIG_IP_NF_FILTER=y | ||
7 | CONFIG_IP_NF_TARGET_ULOG=y | ||
8 | CONFIG_IP_NF_IPTABLES=y | ||
9 | # | ||
10 | # Not directly sourced via a kernel type but via an external bb | ||
11 | # | ||
12 | CONFIG_NETFILTER=y | ||
13 | CONFIG_NETFILTER_ADVANCED=y | ||
14 | |||
15 | # | ||
16 | # Core Netfilter Configuration | ||
17 | # | ||
18 | CONFIG_NETFILTER_NETLINK=m | ||
19 | CONFIG_NETFILTER_NETLINK_QUEUE=m | ||
20 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
21 | CONFIG_NF_CONNTRACK=m | ||
22 | CONFIG_NF_CONNTRACK_MARK=y | ||
23 | CONFIG_NF_CT_PROTO_GRE=m | ||
24 | CONFIG_NF_CT_PROTO_SCTP=m | ||
25 | CONFIG_NF_CT_PROTO_UDPLITE=m | ||
26 | CONFIG_NF_CONNTRACK_AMANDA=m | ||
27 | CONFIG_NF_CONNTRACK_FTP=m | ||
28 | CONFIG_NF_CONNTRACK_H323=m | ||
29 | CONFIG_NF_CONNTRACK_IRC=m | ||
30 | CONFIG_NF_CONNTRACK_NETBIOS_NS=m | ||
31 | CONFIG_NF_CONNTRACK_PPTP=m | ||
32 | CONFIG_NF_CONNTRACK_SANE=m | ||
33 | CONFIG_NF_CONNTRACK_SIP=m | ||
34 | CONFIG_NF_CONNTRACK_TFTP=m | ||
35 | CONFIG_NF_CT_NETLINK=m | ||
36 | CONFIG_NETFILTER_XTABLES=m | ||
37 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | ||
38 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m | ||
39 | CONFIG_NETFILTER_XT_TARGET_DSCP=m | ||
40 | CONFIG_NETFILTER_XT_TARGET_HL=m | ||
41 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
42 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||
43 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||
44 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | ||
45 | CONFIG_NETFILTER_XT_TARGET_TRACE=m | ||
46 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | ||
47 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | ||
48 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | ||
49 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | ||
50 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | ||
51 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
52 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | ||
53 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | ||
54 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
55 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | ||
56 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||
57 | CONFIG_NETFILTER_XT_MATCH_HL=m | ||
58 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||
59 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | ||
60 | CONFIG_NETFILTER_XT_MATCH_MAC=m | ||
61 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
62 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
63 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
64 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | ||
65 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | ||
66 | CONFIG_NETFILTER_XT_MATCH_REALM=m | ||
67 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | ||
68 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
69 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | ||
70 | CONFIG_NETFILTER_XT_MATCH_STRING=m | ||
71 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | ||
72 | CONFIG_NETFILTER_XT_MATCH_U32=m | ||
73 | |||
74 | # | ||
75 | # IP: Netfilter Configuration | ||
76 | # | ||
77 | CONFIG_NF_DEFRAG_IPV4=m | ||
78 | CONFIG_NF_CONNTRACK_IPV4=m | ||
79 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | ||
80 | CONFIG_IP_NF_IPTABLES=m | ||
81 | CONFIG_IP_NF_MATCH_AH=m | ||
82 | CONFIG_IP_NF_MATCH_ECN=m | ||
83 | CONFIG_IP_NF_MATCH_TTL=m | ||
84 | CONFIG_IP_NF_FILTER=m | ||
85 | CONFIG_IP_NF_TARGET_REJECT=m | ||
86 | CONFIG_IP_NF_TARGET_ULOG=m | ||
87 | CONFIG_NF_NAT=m | ||
88 | CONFIG_NF_NAT_NEEDED=y | ||
89 | CONFIG_NF_NAT_IPV4=m | ||
90 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
91 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
92 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
93 | CONFIG_NF_NAT_SNMP_BASIC=m | ||
94 | CONFIG_NF_NAT_PROTO_GRE=m | ||
95 | CONFIG_NF_NAT_PROTO_UDPLITE=m | ||
96 | CONFIG_NF_NAT_PROTO_SCTP=m | ||
97 | CONFIG_NF_NAT_FTP=m | ||
98 | CONFIG_NF_NAT_IRC=m | ||
99 | CONFIG_NF_NAT_TFTP=m | ||
100 | CONFIG_NF_NAT_AMANDA=m | ||
101 | CONFIG_NF_NAT_PPTP=m | ||
102 | CONFIG_NF_NAT_H323=m | ||
103 | CONFIG_NF_NAT_SIP=m | ||
104 | CONFIG_IP_NF_MANGLE=m | ||
105 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | ||
106 | CONFIG_IP_NF_TARGET_ECN=m | ||
107 | CONFIG_IP_NF_TARGET_TTL=m | ||
108 | CONFIG_IP_NF_RAW=m | ||
109 | CONFIG_IP_NF_ARPTABLES=m | ||
110 | CONFIG_IP_NF_ARPFILTER=m | ||
111 | CONFIG_IP_NF_ARP_MANGLE=m | ||
112 | |||
113 | CONFIG_NET_SCHED=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00036-ppc_virt.cfg b/recipes-kernel/linux/files/cfg/00036-ppc_virt.cfg new file mode 100644 index 0000000..e41d2e9 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00036-ppc_virt.cfg | |||
@@ -0,0 +1,5 @@ | |||
1 | CONFIG_VIRTUALIZATION=y | ||
2 | CONFIG_KVM_E500MC=y | ||
3 | CONFIG_BRIDGE=y | ||
4 | CONFIG_TUN=y | ||
5 | CONFIG_PCI_STUB=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00037-ppc_lxc.cfg b/recipes-kernel/linux/files/cfg/00037-ppc_lxc.cfg new file mode 100644 index 0000000..d4e5f8f --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00037-ppc_lxc.cfg | |||
@@ -0,0 +1,30 @@ | |||
1 | CONFIG_MEMCG=y | ||
2 | CONFIG_MEMCG_KMEM=y | ||
3 | CONFIG_CGROUP_DEVICE=y | ||
4 | CONFIG_CPUSETS=y | ||
5 | CONFIG_PROC_PID_CPUSET=y | ||
6 | CONFIG_RESOURCE_COUNTERS=y | ||
7 | CONFIG_CGROUP_MEM_RES_CTLR=y | ||
8 | CONFIG_CGROUP_SCHED=y | ||
9 | CONFIG_FAIR_GROUP_SCHED=y | ||
10 | CONFIG_RT_GROUP_SCHED=y | ||
11 | CONFIG_CHECKPOINT_RESTORE=y | ||
12 | CONFIG_NAMESPACES=y | ||
13 | CONFIG_UTS_NS=y | ||
14 | CONFIG_IPC_NS=y | ||
15 | CONFIG_USER_NS=n | ||
16 | CONFIG_PID_NS=y | ||
17 | CONFIG_NET_NS=y | ||
18 | CONFIG_SECCOMP=y | ||
19 | CONFIG_SECURITY_APPARMOR=y | ||
20 | CONFIG_CGROUPS=y | ||
21 | |||
22 | CONFIG_CLS_CGROUP=m | ||
23 | CONFIG_BLK_CGROUP=m | ||
24 | CONFIG_NETPRIO_CGROUP=m | ||
25 | |||
26 | CONFIG_DEVPTS_MULTIPLE_INSTANCES=y | ||
27 | CONFIG_VETH=y | ||
28 | CONFIG_MACVLAN=y | ||
29 | CONFIG_CGROUP_CPUACCT=y | ||
30 | |||
diff --git a/recipes-kernel/linux/files/cfg/00038-hotplug_cpu.cfg b/recipes-kernel/linux/files/cfg/00038-hotplug_cpu.cfg new file mode 100644 index 0000000..3704a7a --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00038-hotplug_cpu.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_HOTPLUG_CPU=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00039-nohz.cfg b/recipes-kernel/linux/files/cfg/00039-nohz.cfg new file mode 100644 index 0000000..4cf684f --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00039-nohz.cfg | |||
@@ -0,0 +1,9 @@ | |||
1 | CONFIG_NO_HZ_COMMON=y | ||
2 | CONFIG_NO_HZ_FULL=y | ||
3 | CONFIG_VIRT_CPU_ACCOUNTING=y | ||
4 | CONFIG_VIRT_CPU_ACCOUNTING_GEN=y | ||
5 | CONFIG_CONTEXT_TRACKING=y | ||
6 | CONFIG_RCU_USER_QS=y | ||
7 | CONFIG_RCU_NOCB_CPU=y | ||
8 | CONFIG_RCU_NOCB_CPU_ALL=y | ||
9 | CONFIG_LOCKUP_DETECTOR=n | ||
diff --git a/recipes-kernel/linux/files/cfg/00040-9p.cfg b/recipes-kernel/linux/files/cfg/00040-9p.cfg new file mode 100644 index 0000000..4b9b161 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00040-9p.cfg | |||
@@ -0,0 +1,5 @@ | |||
1 | CONFIG_NET_9P=y | ||
2 | CONFIG_NET_9P_VIRTIO=y | ||
3 | CONFIG_NET_9P_DEBUG=y | ||
4 | CONFIG_9P_FS=y | ||
5 | CONFIG_9P_FS_POSIX_ACL=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00041-virtio.cfg b/recipes-kernel/linux/files/cfg/00041-virtio.cfg new file mode 100644 index 0000000..41f0dcd --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00041-virtio.cfg | |||
@@ -0,0 +1,8 @@ | |||
1 | CONFIG_VIRTIO_PCI=y | ||
2 | CONFIG_VIRTIO_BALLOON=y | ||
3 | CONFIG_VIRTIO_BLK=y | ||
4 | CONFIG_VIRTIO_NET=y | ||
5 | CONFIG_VIRTIO=y | ||
6 | CONFIG_VIRTIO_RING=y | ||
7 | CONFIG_VIRTIO_MMIO=y | ||
8 | CONFIG_VIRTIO_CONSOLE=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00042-vhost.cfg b/recipes-kernel/linux/files/cfg/00042-vhost.cfg new file mode 100644 index 0000000..87a6004 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00042-vhost.cfg | |||
@@ -0,0 +1,2 @@ | |||
1 | CONFIG_VHOST_NET=y | ||
2 | CONFIG_PCI_MSI=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00043-containers.cfg b/recipes-kernel/linux/files/cfg/00043-containers.cfg new file mode 100644 index 0000000..aac7304 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00043-containers.cfg | |||
@@ -0,0 +1,18 @@ | |||
1 | CONFIG_NAMESPACES=y | ||
2 | CONFIG_UTS_NS=y | ||
3 | CONFIG_IPC_NS=y | ||
4 | CONFIG_USER_NS=y | ||
5 | CONFIG_PID_NS=y | ||
6 | CONFIG_NET_NS=y | ||
7 | CONFIG_CGROUP_FREEZER=y | ||
8 | CONFIG_CGROUP_DEVICE=y | ||
9 | CONFIG_CGROUP_CPUACCT=y | ||
10 | CONFIG_RESOURCE_COUNTERS=y | ||
11 | CONFIG_CGROUP_SCHED=y | ||
12 | CONFIG_BLK_CGROUP=y | ||
13 | CONFIG_CPUSETS=y | ||
14 | CONFIG_MEMCG=y | ||
15 | CONFIG_MEMCG_KMEM=y | ||
16 | CONFIG_VETH=y | ||
17 | CONFIG_MACVLAN=y | ||
18 | CONFIG_DEVPTS_MULTIPLE_INSTANCES=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00044-numa.cfg b/recipes-kernel/linux/files/cfg/00044-numa.cfg new file mode 100644 index 0000000..e480f0c --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00044-numa.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_NUMA=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00045-pci-stub.cfg b/recipes-kernel/linux/files/cfg/00045-pci-stub.cfg new file mode 100644 index 0000000..04aec57 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00045-pci-stub.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_PCI_STUB=m | |||
diff --git a/recipes-kernel/linux/files/cfg/00046-sata.cfg b/recipes-kernel/linux/files/cfg/00046-sata.cfg new file mode 100644 index 0000000..0a30897 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00046-sata.cfg | |||
@@ -0,0 +1,5 @@ | |||
1 | #enable SATA support | ||
2 | CONFIG_ATA=y | ||
3 | CONFIG_SATA_AHCI=y | ||
4 | CONFIG_SATA_AHCI_PLATFORM=y | ||
5 | CONFIG_SATA_PMP=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00047-bridge.cfg b/recipes-kernel/linux/files/cfg/00047-bridge.cfg new file mode 100644 index 0000000..873cbf3 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00047-bridge.cfg | |||
@@ -0,0 +1 @@ | |||
CONFIG_BRIDGE=y | |||
diff --git a/recipes-kernel/linux/files/cfg/00048-containers_no_user_ns.cfg b/recipes-kernel/linux/files/cfg/00048-containers_no_user_ns.cfg new file mode 100644 index 0000000..7b0b6f6 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00048-containers_no_user_ns.cfg | |||
@@ -0,0 +1,18 @@ | |||
1 | CONFIG_NAMESPACES=y | ||
2 | CONFIG_UTS_NS=y | ||
3 | CONFIG_IPC_NS=y | ||
4 | CONFIG_USER_NS=n | ||
5 | CONFIG_PID_NS=y | ||
6 | CONFIG_NET_NS=y | ||
7 | CONFIG_CGROUP_FREEZER=y | ||
8 | CONFIG_CGROUP_DEVICE=y | ||
9 | CONFIG_CGROUP_CPUACCT=y | ||
10 | CONFIG_RESOURCE_COUNTERS=y | ||
11 | CONFIG_CGROUP_SCHED=y | ||
12 | CONFIG_BLK_CGROUP=y | ||
13 | CONFIG_CPUSETS=y | ||
14 | CONFIG_MEMCG=y | ||
15 | CONFIG_MEMCG_KMEM=y | ||
16 | CONFIG_VETH=y | ||
17 | CONFIG_MACVLAN=y | ||
18 | CONFIG_DEVPTS_MULTIPLE_INSTANCES=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00049-gpio.cfg b/recipes-kernel/linux/files/cfg/00049-gpio.cfg new file mode 100644 index 0000000..9ea98eb --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00049-gpio.cfg | |||
@@ -0,0 +1,2 @@ | |||
1 | CONFIG_GPIO_SYSFS=y | ||
2 | CONFIG_GPIO_GENERIC=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00050-nfsdv4.cfg b/recipes-kernel/linux/files/cfg/00050-nfsdv4.cfg new file mode 100644 index 0000000..fb0d0b2 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00050-nfsdv4.cfg | |||
@@ -0,0 +1,7 @@ | |||
1 | CONFIG_NFSD_V4=y | ||
2 | CONFIG_NFSD=y | ||
3 | CONFIG_INET=y | ||
4 | CONFIG_NET=y | ||
5 | CONFIG_NETWORK_FILESYSTEMS =y | ||
6 | CONFIG_FILE_LOCKING=y | ||
7 | CONFIG_PROC_FS=y | ||
diff --git a/recipes-kernel/linux/files/cfg/00051-sctp.cfg b/recipes-kernel/linux/files/cfg/00051-sctp.cfg new file mode 100644 index 0000000..6182ef2 --- /dev/null +++ b/recipes-kernel/linux/files/cfg/00051-sctp.cfg | |||
@@ -0,0 +1,4 @@ | |||
1 | CONFIG_NET=y | ||
2 | CONFIG_INET=y | ||
3 | CONFIG_IPV6=y | ||
4 | CONFIG_IP_SCTP=y | ||
diff --git a/recipes-kernel/linux/files/cfg/README b/recipes-kernel/linux/files/cfg/README new file mode 100644 index 0000000..abfff1e --- /dev/null +++ b/recipes-kernel/linux/files/cfg/README | |||
@@ -0,0 +1,9 @@ | |||
1 | In ordert to add a configuration fragment contained in a .cfg file, | ||
2 | please follow these steps: | ||
3 | |||
4 | 1. change to the directory that contains this README file. | ||
5 | 2. copy your fragment file here and make sure your file has a .cfg extension | ||
6 | 4. run the indexcfgs.pl utility from this directory to | ||
7 | index your file. | ||
8 | 5. check for the new name and use it to further reference your renamed | ||
9 | cfg file. | ||
diff --git a/recipes-kernel/linux/files/cfg/indexcfgs.pl b/recipes-kernel/linux/files/cfg/indexcfgs.pl new file mode 100755 index 0000000..96cd78a --- /dev/null +++ b/recipes-kernel/linux/files/cfg/indexcfgs.pl | |||
@@ -0,0 +1,167 @@ | |||
1 | #!/usr/bin/perl -w | ||
2 | #---------------------------------------------------------------------- | ||
3 | # indexcfgs.pl - utility to rename files in the current directory to an | ||
4 | # indexed format so that a unique index number is | ||
5 | # prepended to the current file name. The naming | ||
6 | # template is: | ||
7 | # | ||
8 | # DDDDD-<name-or-short-description.cfg> | ||
9 | # | ||
10 | # Usage: create the *.cfg file you need, with any name and .cfg | ||
11 | # extension. Run this script and it will automatically | ||
12 | # rename your file to the indexed format above. | ||
13 | # | ||
14 | # Author: Daniel BORNAZ <daniel.bornaz@enea.com | ||
15 | # Date: 2014/04/09 | ||
16 | # Version: 1.0 | ||
17 | # | ||
18 | #---------------------------------------------------------------------- | ||
19 | |||
20 | use strict; | ||
21 | use warnings; | ||
22 | use Getopt::Long; | ||
23 | |||
24 | my %args; | ||
25 | my $counter_indexed=0; | ||
26 | my $filetype="*.cfg"; | ||
27 | my $counter_queue=0; | ||
28 | my $max_index=0; | ||
29 | my $dir="./"; | ||
30 | my @files; | ||
31 | my @queue; | ||
32 | my $opt_strip; | ||
33 | my $opt_help; | ||
34 | |||
35 | |||
36 | #-------------------------------------------------------------------- | ||
37 | # strip the index from the file name | ||
38 | # | ||
39 | sub removeindex($){ | ||
40 | my $tmpname=shift; | ||
41 | my $newname; | ||
42 | |||
43 | if($tmpname=~/^\d{5}\-.*cfg/ig){ | ||
44 | $newname=substr($tmpname,6); | ||
45 | system("mv",$tmpname,$newname) == 0 | ||
46 | or die "Cannot rename $tmpname to $newname: $?"; | ||
47 | }else{ | ||
48 | return 0; | ||
49 | } | ||
50 | } | ||
51 | |||
52 | #-------------------------------------------------------------------- | ||
53 | # get the indexed file name, return the index | ||
54 | # | ||
55 | sub decodeindex($){ | ||
56 | my $tmpname=shift; | ||
57 | |||
58 | if($tmpname=~/^\d{5}\-.*cfg/ig){ | ||
59 | return substr($tmpname,0,5); | ||
60 | }else{ | ||
61 | return 0; | ||
62 | } | ||
63 | } | ||
64 | |||
65 | #-------------------------------------------------------------------- | ||
66 | # remove index from cfg files in current directory | ||
67 | # | ||
68 | sub strip_file_names { | ||
69 | print "Start removing index from $filetype files in $dir\n"; | ||
70 | |||
71 | opendir(DIR,$dir) or die $!; | ||
72 | |||
73 | while( my $file=readdir(DIR)){ | ||
74 | # retrieve cfg files (*.cfg) | ||
75 | if($file=~/cfg$/gi){ | ||
76 | removeindex($file); | ||
77 | } | ||
78 | } | ||
79 | |||
80 | closedir(DIR); | ||
81 | } | ||
82 | |||
83 | #-------------------------------------------------------------------- | ||
84 | # index current directory cfg files | ||
85 | # | ||
86 | sub index_file_names { | ||
87 | print "Start indexing $filetype files in $dir\n"; | ||
88 | |||
89 | opendir(DIR,$dir) or die $!; | ||
90 | |||
91 | while( my $file=readdir(DIR)){ | ||
92 | # retrieve cfg files (*.cfg) | ||
93 | if($file=~/cfg$/gi){ | ||
94 | @files=(@files,$file); | ||
95 | } | ||
96 | } | ||
97 | |||
98 | closedir(DIR); | ||
99 | |||
100 | |||
101 | # separate indexed file names from the ones to be processed | ||
102 | foreach my $file (@files){ | ||
103 | if($file=~/^\d{5}\-.*cfg/){ | ||
104 | my $crt_index=0; | ||
105 | |||
106 | $crt_index=decodeindex($file); | ||
107 | |||
108 | if($crt_index > $max_index){ | ||
109 | $max_index=$crt_index; | ||
110 | } | ||
111 | |||
112 | $counter_indexed++; | ||
113 | }else{ | ||
114 | @queue=($file,@queue); | ||
115 | $counter_queue++; | ||
116 | } | ||
117 | } | ||
118 | |||
119 | # set the next index number | ||
120 | $max_index++; | ||
121 | |||
122 | # index the enqueued file names | ||
123 | foreach my $file (@queue){ | ||
124 | my $newname; | ||
125 | |||
126 | $newname=sprintf("%05d-%s",$max_index++,$file); | ||
127 | system("mv",$file,$newname) == 0 | ||
128 | or die "Cannot rename $file to $newname: $?"; | ||
129 | } | ||
130 | |||
131 | printf("$counter_queue files indexed, ". | ||
132 | "$counter_indexed files already indexed. Done.\n"); | ||
133 | } | ||
134 | |||
135 | #-------------------------------------------------------------------- | ||
136 | # display usage help | ||
137 | # | ||
138 | sub print_usage { | ||
139 | print "\n"; | ||
140 | print " ./indexcfgs.pl [--strip]\n"; | ||
141 | print " no params: Index the *.cfg file names in current dir\n"; | ||
142 | print " to DDDDD-<original_file_name.cfg>\n"; | ||
143 | print " --strip: Strips the index from the *.cfg file names ". | ||
144 | "in current dir\n"; | ||
145 | print "\n"; | ||
146 | |||
147 | exit 0; | ||
148 | } | ||
149 | |||
150 | |||
151 | #--- Program starts here -------------------------------------------- | ||
152 | GetOptions(\%args, | ||
153 | "strip" => \$opt_strip, | ||
154 | "help" => \$opt_help, | ||
155 | ); | ||
156 | |||
157 | if(defined($opt_help)){ | ||
158 | print_usage(); | ||
159 | } | ||
160 | |||
161 | if(defined($opt_strip)){ | ||
162 | strip_file_names(); | ||
163 | }else{ | ||
164 | index_file_names(); | ||
165 | } | ||
166 | |||
167 | |||
diff --git a/recipes-kernel/perf/perf.bbappend b/recipes-kernel/perf/perf.bbappend new file mode 100644 index 0000000..864f938 --- /dev/null +++ b/recipes-kernel/perf/perf.bbappend | |||
@@ -0,0 +1,4 @@ | |||
1 | # | ||
2 | # added the python-math and python-sqlite3 modules, required by perf | ||
3 | # | ||
4 | SCRIPTING_RDEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl perl-modules python python-math python-sqlite3', '',d)}" | ||
diff --git a/recipes-kernel/pramfs-init/files/pramfs_init b/recipes-kernel/pramfs-init/files/pramfs_init new file mode 100644 index 0000000..64c7bc2 --- /dev/null +++ b/recipes-kernel/pramfs-init/files/pramfs_init | |||
@@ -0,0 +1,80 @@ | |||
1 | #!/bin/sh | ||
2 | #set -e | ||
3 | |||
4 | echo "Setting up pramfs" | ||
5 | |||
6 | # ensure the required binaries are present | ||
7 | #[ -x /sbin/modprobe ] || exit 1 | ||
8 | [ -x /bin/mount ] || exit 1 | ||
9 | [ -x /bin/grep ] || exit 1 | ||
10 | [ -x /bin/cat ] || exit 1 | ||
11 | [ -x /bin/sed ] || exit 1 | ||
12 | |||
13 | #modprobe pramfs | ||
14 | mkdir -p /mnt/pram | ||
15 | |||
16 | case "$1" in | ||
17 | start) | ||
18 | # Figure out RAM for pramfs | ||
19 | # This requires a kernel cmdline resevation of PRAMFS physmem | ||
20 | # in format memmap=16M$0x7000000 | ||
21 | grep memmap /proc/cmdline > /dev/null | ||
22 | if [ $? -eq 0 ]; then | ||
23 | addr=$(sed 's/.*memmap=\([^ ]*\)\$\([^ ]*\).*/\2/' < /proc/cmdline) | ||
24 | size=$(sed 's/.*memmap=\([^ ]*\)\$\([^ ]*\).*/\1/' < /proc/cmdline) | ||
25 | |||
26 | if [ -d /seed ]; then | ||
27 | echo "Init new pramfs" | ||
28 | mount -t pramfs -o physaddr=$addr,init=$size,bs=1k none /mnt/pram > /dev/null 2>&1 | ||
29 | cp /seed/* /mnt/pram | ||
30 | echo "0" > /mnt/pram/kcount | ||
31 | else | ||
32 | echo "Mounting old pramfs" | ||
33 | mount -t pramfs -o physaddr=$addr,bs=1k none /mnt/pram > /dev/null 2>&1 | ||
34 | if [ $? -ne 0 ]; then | ||
35 | echo "Mounting old pramfs failed, zeroing" | ||
36 | mount -t pramfs -o physaddr=$addr,init=$size,bs=1k none /mnt/pram > /dev/null 2>&1 | ||
37 | if [ $? -ne 0 ]; then | ||
38 | echo "All attempts to mount pramfs has failed, exiting" | ||
39 | rm -fr /mnt/pram | ||
40 | exit 1 | ||
41 | fi | ||
42 | echo "0" > /mnt/pram/kcount | ||
43 | fi | ||
44 | fi | ||
45 | |||
46 | # echo "* Setting up kexec" | ||
47 | # kexec -l --reuse-cmdline --initrd=/mnt/pram/initramfs.cpio.gz /mnt/pram/vmlinuz | ||
48 | |||
49 | # Calculate number of boots | ||
50 | export KCOUNT=$(expr $(cat /mnt/pram/kcount) + 1) | ||
51 | echo $KCOUNT > /mnt/pram/kcount | ||
52 | else | ||
53 | KCOUNT="no-mem" | ||
54 | echo "Can't find memory area for pram fs" | ||
55 | rm -fr /mnt/pram | ||
56 | fi | ||
57 | |||
58 | echo "PRAMFS boot count: $KCOUNT" | ||
59 | # echo "kexec -e to kexec and keep persistent files in /mnt/pram" | ||
60 | ;; | ||
61 | stop) | ||
62 | echo | ||
63 | ;; | ||
64 | restart) | ||
65 | $0 stop | ||
66 | $0 start | ||
67 | ;; | ||
68 | *) | ||
69 | echo "usage: $0 { start | stop | restart }" >&2 | ||
70 | exit 1 | ||
71 | ;; | ||
72 | esac | ||
73 | |||
74 | exit 0 | ||
75 | |||
76 | |||
77 | |||
78 | |||
79 | |||
80 | |||
diff --git a/recipes-kernel/pramfs-init/pramfs-init_1.0.bb b/recipes-kernel/pramfs-init/pramfs-init_1.0.bb new file mode 100644 index 0000000..d9b36a7 --- /dev/null +++ b/recipes-kernel/pramfs-init/pramfs-init_1.0.bb | |||
@@ -0,0 +1,20 @@ | |||
1 | DESCRIPTION = "Pramfs init scripts" | ||
2 | SECTION = "init" | ||
3 | LICENSE = "BSD" | ||
4 | SRC_URI = "file://pramfs_init" | ||
5 | PR = "r0" | ||
6 | |||
7 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ | ||
8 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
9 | |||
10 | PACKAGE_ARCH = "all" | ||
11 | |||
12 | do_install() { | ||
13 | install -d ${D}${sysconfdir}/init.d/ | ||
14 | install -m 0755 ${WORKDIR}/pramfs_init ${D}${sysconfdir}/init.d/pramfs_init | ||
15 | } | ||
16 | |||
17 | inherit update-rc.d | ||
18 | |||
19 | INITSCRIPT_NAME = "pramfs_init" | ||
20 | INITSCRIPT_PARAMS = "start 99 5 2 . stop 19 0 1 6 ." | ||