Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1174)

Side by Side Diff: tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.debian.sh

Issue 16880002: [MIPS] Switch the script to use packages from Debian Wheezy (Closed) Base URL: http://git.chromium.org/native_client/src/native_client.git@master
Patch Set: Add a comment. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 # 5 #
6 #@ This script creates the mips trusted SDK. 6 #@ This script creates the mips trusted SDK.
7 #@ It must be run from the native_client directory. 7 #@ It must be run from the native_client directory.
8 8
9 # This script is intended to build a mipsel-linux-gnu cross compilation 9 # This script is intended to build a mipsel-linux-gnu cross compilation
10 # toolchain that runs on x86 linux and generates code for a little-endian, 10 # toolchain that runs on x86 linux and generates code for a little-endian,
11 # hard-float, mips32 target. 11 # hard-float, mips32 target.
12 #
13 # It expects the host machine to have relatively recent versions of GMP (4.2.0
14 # or later), MPFR (2.4.2), and MPC (0.8.1) in order to build the GCC.
15 #
16 # Common way to get those is:
17 # sudo apt-get install libmpfr-dev libmpc-dev libgmp3-dev
18 12
19 ###################################################################### 13 ######################################################################
20 # Config 14 # Config
21 ###################################################################### 15 ######################################################################
22 16
23 set -o nounset 17 set -o nounset
24 set -o errexit 18 set -o errexit
25 set -o xtrace 19 set -o xtrace
26 20
27 readonly SCRIPT_DIR=$(dirname $0) 21 readonly SCRIPT_DIR=$(dirname $0)
28 22
29 readonly MAKE_OPTS="-j8" 23 readonly MAKE_OPTS="-j8"
30 readonly ARCH="mips32" 24 readonly ARCH="mips32"
31 25
26 readonly GMP_URL="http://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2"
27 readonly GMP_SHA1SUM="c011e8feaf1bb89158bd55eaabd7ef8fdd101a2c"
28
29 readonly MPFR_URL="http://ftp.gnu.org/gnu/mpfr/mpfr-2.4.2.tar.bz2"
30 readonly MPFR_SHA1SUM="7ca93006e38ae6e53a995af836173cf10ee7c18c"
31
32 readonly MPC_URL="http://ftp.gnu.org/gnu/mpc/mpc-1.0.1.tar.gz"
33 readonly MPC_SHA1SUM="8c7e19ad0dd9b3b5cc652273403423d6cf0c5edf"
34
32 readonly GCC_URL="http://ftp.gnu.org/gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2" 35 readonly GCC_URL="http://ftp.gnu.org/gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2"
33 readonly GCC_SHA1SUM="a464ba0f26eef24c29bcd1e7489421117fb9ee35" 36 readonly GCC_SHA1SUM="a464ba0f26eef24c29bcd1e7489421117fb9ee35"
34 37
35 readonly BINUTILS_URL="http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2" 38 readonly BINUTILS_URL="http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2"
36 readonly BINUTILS_SHA1SUM="65b304a0b9a53a686ce50a01173d1f40f8efe404" 39 readonly BINUTILS_SHA1SUM="65b304a0b9a53a686ce50a01173d1f40f8efe404"
37 40
38 readonly KERNEL_URL="http://www.linux-mips.org/pub/linux/mips/kernel/v2.6/linux- 2.6.38.4.tar.gz" 41 readonly KERNEL_URL="http://www.linux-mips.org/pub/linux/mips/kernel/v2.6/linux- 2.6.38.4.tar.gz"
39 readonly KERNEL_SHA1SUM="377fa5cf5f1d0c396759b1c4d147330e7e5b6d7f" 42 readonly KERNEL_SHA1SUM="377fa5cf5f1d0c396759b1c4d147330e7e5b6d7f"
40 43
41 readonly GDB_URL="http://ftp.gnu.org/gnu/gdb/gdb-7.5.tar.bz2" 44 readonly GDB_URL="http://ftp.gnu.org/gnu/gdb/gdb-7.5.tar.bz2"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 local url=$1 94 local url=$1
92 local revision=$2 95 local revision=$2
93 local filename="${TMP}/${url##*/}" 96 local filename="${TMP}/${url##*/}"
94 local filetype="${url%%:*}" 97 local filetype="${url%%:*}"
95 98
96 if [ "${filename}" == "" ]; then 99 if [ "${filename}" == "" ]; then
97 echo "Unknown error occured. Aborting." 100 echo "Unknown error occured. Aborting."
98 exit 1 101 exit 1
99 fi 102 fi
100 103
101 if [ "${filetype}" == "svn" ]; then 104 if [ ! -f "${filename}/completed" ]; then
102 SubBanner "checkout from ${url} -> ${filename}" 105 if [ "${filetype}" == "svn" ]; then
103 svn --force export -r ${revision} ${url} ${filename} 106 SubBanner "checkout from ${url} -> ${filename}"
104 else 107 svn --force export -r ${revision} ${url} ${filename}
105 SubBanner "copying from ${url}" 108 else
106 cp ${url} ${filename} 109 SubBanner "copying from ${url}"
110 cp ${url} ${filename}
111 fi
112 touch ${filename}/completed
107 fi 113 fi
108 } 114 }
109 115
110 DownloadOrCopy() { 116 DownloadOrCopy() {
111 local url=$1 117 local url=$1
112 local filename="${TMP}/${url##*/}" 118 local filename="${TMP}/${url##*/}"
113 local filetype="${url%%:*}" 119 local filetype="${url%%:*}"
114 120
115 if [ "${filename}" == "" ]; then 121 if [ "${filename}" == "" ]; then
116 echo "Unknown error occured. Aborting." 122 echo "Unknown error occured. Aborting."
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 if [[ $(basename $(pwd)) != "native_client" ]] ; then 174 if [[ $(basename $(pwd)) != "native_client" ]] ; then
169 echo "ERROR: run this script from the native_client/ dir" 175 echo "ERROR: run this script from the native_client/ dir"
170 exit -1 176 exit -1
171 fi 177 fi
172 178
173 if ! mkdir -p "${INSTALL_ROOT}" ; then 179 if ! mkdir -p "${INSTALL_ROOT}" ; then
174 echo "ERROR: ${INSTALL_ROOT} can't be created." 180 echo "ERROR: ${INSTALL_ROOT} can't be created."
175 exit -1 181 exit -1
176 fi 182 fi
177 183
178 for tool in cleanlinks wget ; do 184 for tool in wget ; do
179 if ! which ${tool} ; then 185 if ! which ${tool} ; then
180 echo "Required binary $tool not found." 186 echo "Required binary $tool not found."
181 echo "Exiting." 187 echo "Exiting."
182 exit 1 188 exit 1
183 fi 189 fi
184 done 190 done
185 } 191 }
186 192
187 193
188 ClearInstallDir() { 194 ClearInstallDir() {
(...skipping 11 matching lines...) Expand all
200 local tarball=$1 206 local tarball=$1
201 Banner "creating tar ball ${tarball}" 207 Banner "creating tar ball ${tarball}"
202 tar cfz ${tarball}.tgz -C ${INSTALL_ROOT} . 208 tar cfz ${tarball}.tgz -C ${INSTALL_ROOT} .
203 } 209 }
204 210
205 211
206 # Download the toolchain source tarballs or use a local copy when available. 212 # Download the toolchain source tarballs or use a local copy when available.
207 DownloadOrCopyAndInstallToolchain() { 213 DownloadOrCopyAndInstallToolchain() {
208 Banner "Installing toolchain" 214 Banner "Installing toolchain"
209 215
216 tarball="${TMP}/${GCC_URL##*/}"
217 DownloadOrCopyAndVerify ${GCC_URL} ${GCC_SHA1SUM}
218 SubBanner "extracting from ${tarball}"
219 tar jxf ${tarball} -C ${TMP}
220
221 pushd ${TMP}/gcc-*
222
223 local tarball="${TMP}/${GMP_URL##*/}"
224 DownloadOrCopyAndVerify ${GMP_URL} ${GMP_SHA1SUM}
225 SubBanner "extracting from ${tarball}"
226 tar jxf ${tarball}
227 local filename=`ls | grep gmp\-`
228 rm -f gmp
229 ln -s ${filename} gmp
230
231 local tarball="${TMP}/${MPFR_URL##*/}"
232 DownloadOrCopyAndVerify ${MPFR_URL} ${MPFR_SHA1SUM}
233 SubBanner "extracting from ${tarball}"
234 tar jxf ${tarball}
235 local filename=`ls | grep mpfr\-`
236 rm -f mpfr
237 ln -s ${filename} mpfr
238
239 local tarball="${TMP}/${MPC_URL##*/}"
240 DownloadOrCopyAndVerify ${MPC_URL} ${MPC_SHA1SUM}
241 SubBanner "extracting from ${tarball}"
242 tar zxf ${tarball}
243 local filename=`ls | grep mpc\-`
244 rm -f mpc
245 ln -s ${filename} mpc
246
247 popd
248
210 local tarball="${TMP}/${BINUTILS_URL##*/}" 249 local tarball="${TMP}/${BINUTILS_URL##*/}"
211 DownloadOrCopyAndVerify ${BINUTILS_URL} ${BINUTILS_SHA1SUM} 250 DownloadOrCopyAndVerify ${BINUTILS_URL} ${BINUTILS_SHA1SUM}
212 SubBanner "extracting from ${tarball}" 251 SubBanner "extracting from ${tarball}"
213 tar jxf ${tarball} -C ${TMP} 252 tar jxf ${tarball} -C ${TMP}
214 253
215 tarball="${TMP}/${GCC_URL##*/}"
216 DownloadOrCopyAndVerify ${GCC_URL} ${GCC_SHA1SUM}
217 SubBanner "extracting from ${tarball}"
218 tar jxf ${tarball} -C ${TMP}
219
220 tarball="${TMP}/${GDB_URL##*/}" 254 tarball="${TMP}/${GDB_URL##*/}"
221 DownloadOrCopyAndVerify ${GDB_URL} ${GDB_SHA1SUM} 255 DownloadOrCopyAndVerify ${GDB_URL} ${GDB_SHA1SUM}
222 SubBanner "extracting from ${tarball}" 256 SubBanner "extracting from ${tarball}"
223 tar jxf ${tarball} -C ${TMP} 257 tar jxf ${tarball} -C ${TMP}
224 258
225 tarball="${TMP}/${KERNEL_URL##*/}" 259 tarball="${TMP}/${KERNEL_URL##*/}"
226 DownloadOrCopyAndVerify ${KERNEL_URL} ${KERNEL_SHA1SUM} 260 DownloadOrCopyAndVerify ${KERNEL_URL} ${KERNEL_SHA1SUM}
227 SubBanner "extracting from ${tarball}" 261 SubBanner "extracting from ${tarball}"
228 tar zxf ${tarball} -C ${TMP} 262 tar zxf ${tarball} -C ${TMP}
229 263
(...skipping 11 matching lines...) Expand all
241 local OLD_TEXT="as_warn_where (fragp->fr_file, fragp->fr_line, msg);" 275 local OLD_TEXT="as_warn_where (fragp->fr_file, fragp->fr_line, msg);"
242 local NEW_TEXT="as_warn_where (fragp->fr_file, fragp->fr_line, \"%s\", msg);" 276 local NEW_TEXT="as_warn_where (fragp->fr_file, fragp->fr_line, \"%s\", msg);"
243 local FILE_NAME="${TMP}/binutils-2.22/gas/config/tc-mips.c" 277 local FILE_NAME="${TMP}/binutils-2.22/gas/config/tc-mips.c"
244 sed -i "s/${OLD_TEXT}/${NEW_TEXT}/g" "${FILE_NAME}" 278 sed -i "s/${OLD_TEXT}/${NEW_TEXT}/g" "${FILE_NAME}"
245 279
246 export PATH=${INSTALL_ROOT}/bin:$PATH 280 export PATH=${INSTALL_ROOT}/bin:$PATH
247 281
248 282
249 Banner "Building binutils" 283 Banner "Building binutils"
250 284
285 rm -rf ${BUILD_DIR}/binutils/
251 mkdir -p ${BUILD_DIR}/binutils/ 286 mkdir -p ${BUILD_DIR}/binutils/
252 pushd ${BUILD_DIR}/binutils/ 287 pushd ${BUILD_DIR}/binutils/
253 288
254 SubBanner "Configuring" 289 SubBanner "Configuring"
255 ${TMP}/binutils-2.22/configure \ 290 ${TMP}/binutils-2.22/configure \
256 --prefix=${INSTALL_ROOT} \ 291 --prefix=${INSTALL_ROOT} \
257 --target=mipsel-linux-gnu \ 292 --target=mipsel-linux-gnu \
258 --with-sysroot=${JAIL_MIPS32} 293 --with-sysroot=${JAIL_MIPS32}
259 294
260 SubBanner "Make" 295 SubBanner "Make"
261 make ${MAKE_OPTS} all-binutils all-gas all-ld 296 make ${MAKE_OPTS} all-binutils all-gas all-ld
262 297
263 SubBanner "Install" 298 SubBanner "Install"
264 make ${MAKE_OPTS} install-binutils install-gas install-ld 299 make ${MAKE_OPTS} install-binutils install-gas install-ld
265 300
266 popd 301 popd
267 302
268 303
269 Banner "Building GCC (initial)" 304 Banner "Building GCC (initial)"
270 305
306 rm -rf ${BUILD_DIR}/gcc/initial
271 mkdir -p ${BUILD_DIR}/gcc/initial 307 mkdir -p ${BUILD_DIR}/gcc/initial
272 pushd ${BUILD_DIR}/gcc/initial 308 pushd ${BUILD_DIR}/gcc/initial
273 309
274 SubBanner "Configuring" 310 SubBanner "Configuring"
275 ${TMP}/gcc-4.7.2/configure \ 311 ${TMP}/gcc-4.7.2/configure \
276 --prefix=${INSTALL_ROOT} \ 312 --prefix=${INSTALL_ROOT} \
277 --disable-libssp \ 313 --disable-libssp \
278 --disable-libgomp \ 314 --disable-libgomp \
279 --disable-libmudflap \ 315 --disable-libmudflap \
280 --disable-fixed-point \ 316 --disable-fixed-point \
(...skipping 21 matching lines...) Expand all
302 338
303 Banner "Installing Linux kernel headers" 339 Banner "Installing Linux kernel headers"
304 pushd ${TMP}/linux-2.6.38.4 340 pushd ${TMP}/linux-2.6.38.4
305 make headers_install ARCH=mips INSTALL_HDR_PATH=${JAIL_MIPS32}/usr 341 make headers_install ARCH=mips INSTALL_HDR_PATH=${JAIL_MIPS32}/usr
306 popd 342 popd
307 343
308 344
309 Banner "Building EGLIBC (initial)" 345 Banner "Building EGLIBC (initial)"
310 346
311 mkdir -p ${JAIL_MIPS32}/usr/lib 347 mkdir -p ${JAIL_MIPS32}/usr/lib
348
349 rm -rf ${BUILD_DIR}/eglibc/initial
312 mkdir -p ${BUILD_DIR}/eglibc/initial 350 mkdir -p ${BUILD_DIR}/eglibc/initial
313 pushd ${BUILD_DIR}/eglibc/initial 351 pushd ${BUILD_DIR}/eglibc/initial
314 352
315 SubBanner "Configuring" 353 SubBanner "Configuring"
316 BUILD_CC=gcc \ 354 BUILD_CC=gcc \
317 AR=mipsel-linux-gnu-ar \ 355 AR=mipsel-linux-gnu-ar \
318 RANLIB=mipsel-linux-gnu-ranlib \ 356 RANLIB=mipsel-linux-gnu-ranlib \
319 CC=mipsel-linux-gnu-gcc \ 357 CC=mipsel-linux-gnu-gcc \
320 CXX=mipsel-linux-gnu-g++ \ 358 CXX=mipsel-linux-gnu-g++ \
321 ${TMP}/eglibc-2_14/libc/configure \ 359 ${TMP}/eglibc-2_14/libc/configure \
(...skipping 17 matching lines...) Expand all
339 -nostartfiles \ 377 -nostartfiles \
340 -shared \ 378 -shared \
341 -x c /dev/null \ 379 -x c /dev/null \
342 -o ${JAIL_MIPS32}/usr/lib/libc.so 380 -o ${JAIL_MIPS32}/usr/lib/libc.so
343 381
344 popd 382 popd
345 383
346 384
347 Banner "Building GCC (intermediate)" 385 Banner "Building GCC (intermediate)"
348 386
387 rm -rf ${BUILD_DIR}/gcc/intermediate
349 mkdir -p ${BUILD_DIR}/gcc/intermediate 388 mkdir -p ${BUILD_DIR}/gcc/intermediate
350 pushd ${BUILD_DIR}/gcc/intermediate 389 pushd ${BUILD_DIR}/gcc/intermediate
351 390
352 SubBanner "Configuring" 391 SubBanner "Configuring"
353 ${TMP}/gcc-4.7.2/configure \ 392 ${TMP}/gcc-4.7.2/configure \
354 --prefix=${INSTALL_ROOT} \ 393 --prefix=${INSTALL_ROOT} \
355 --disable-libssp \ 394 --disable-libssp \
356 --disable-libgomp \ 395 --disable-libgomp \
357 --disable-libmudflap \ 396 --disable-libmudflap \
358 --disable-fixed-point \ 397 --disable-fixed-point \
(...skipping 11 matching lines...) Expand all
370 make ${MAKE_OPTS} all 409 make ${MAKE_OPTS} all
371 410
372 SubBanner "Install" 411 SubBanner "Install"
373 make ${MAKE_OPTS} install 412 make ${MAKE_OPTS} install
374 413
375 popd 414 popd
376 415
377 416
378 Banner "Building EGLIBC (final)" 417 Banner "Building EGLIBC (final)"
379 418
419 rm -rf ${BUILD_DIR}/eglibc/final
380 mkdir -p ${BUILD_DIR}/eglibc/final 420 mkdir -p ${BUILD_DIR}/eglibc/final
381 pushd ${BUILD_DIR}/eglibc/final 421 pushd ${BUILD_DIR}/eglibc/final
382 422
383 BUILD_CC=gcc \ 423 BUILD_CC=gcc \
384 AR=mipsel-linux-gnu-ar \ 424 AR=mipsel-linux-gnu-ar \
385 RANLIB=mipsel-linux-gnu-ranlibi \ 425 RANLIB=mipsel-linux-gnu-ranlibi \
386 CC=mipsel-linux-gnu-gcc \ 426 CC=mipsel-linux-gnu-gcc \
387 CXX=mipsel-linux-gnu-g++ \ 427 CXX=mipsel-linux-gnu-g++ \
388 ${TMP}/eglibc-2_14/libc/configure \ 428 ${TMP}/eglibc-2_14/libc/configure \
389 --prefix=/usr \ 429 --prefix=/usr \
390 --enable-add-ons \ 430 --enable-add-ons \
391 --host=mipsel-linux-gnu \ 431 --host=mipsel-linux-gnu \
392 --disable-profile \ 432 --disable-profile \
393 --without-gd \ 433 --without-gd \
394 --without-cvs \ 434 --without-cvs \
395 --build=i686-pc-linux-gnu \ 435 --build=i686-pc-linux-gnu \
396 --with-headers=${JAIL_MIPS32}/usr/include 436 --with-headers=${JAIL_MIPS32}/usr/include
397 437
398 SubBanner "Make" 438 SubBanner "Make"
399 make ${MAKE_OPTS} all 439 make ${MAKE_OPTS} all
400 440
401 SubBanner "Install" 441 SubBanner "Install"
402 make ${MAKE_OPTS} install install_root=${JAIL_MIPS32} 442 make ${MAKE_OPTS} install install_root=${JAIL_MIPS32}
403 443
404 popd 444 popd
405 445
406 446
407 Banner "Building GCC (final)" 447 Banner "Building GCC (final)"
408 448
449 rm -rf ${BUILD_DIR}/gcc/final
409 mkdir -p ${BUILD_DIR}/gcc/final 450 mkdir -p ${BUILD_DIR}/gcc/final
410 pushd ${BUILD_DIR}/gcc/final 451 pushd ${BUILD_DIR}/gcc/final
411 452
412 ${TMP}/gcc-4.7.2/configure \ 453 ${TMP}/gcc-4.7.2/configure \
413 --prefix=${INSTALL_ROOT} \ 454 --prefix=${INSTALL_ROOT} \
414 --disable-libssp \ 455 --disable-libssp \
415 --disable-libgomp \ 456 --disable-libgomp \
416 --disable-libmudflap \ 457 --disable-libmudflap \
417 --disable-fixed-point \ 458 --disable-fixed-point \
418 --disable-decimal-float \ 459 --disable-decimal-float \
419 --with-mips-plt \ 460 --with-mips-plt \
420 --with-endian=little \ 461 --with-endian=little \
421 --with-arch=${ARCH} \ 462 --with-arch=${ARCH} \
422 --target=mipsel-linux-gnu \ 463 --target=mipsel-linux-gnu \
423 --enable-__cxa_atexit \ 464 --enable-__cxa_atexit \
424 --enable-languages=c,c++ \ 465 --enable-languages=c,c++ \
425 --with-sysroot=${JAIL_MIPS32} 466 --with-sysroot=${JAIL_MIPS32}
426 467
427 SubBanner "Make" 468 SubBanner "Make"
428 make ${MAKE_OPTS} all 469 make ${MAKE_OPTS} all
429 470
430 SubBanner "Install" 471 SubBanner "Install"
431 make ${MAKE_OPTS} install 472 make ${MAKE_OPTS} install
432 473
433 popd 474 popd
434 475
435 476
436 Banner "Building GDB" 477 Banner "Building GDB"
437 478
479 rm -rf ${BUILD_DIR}/gdb/
438 mkdir -p ${BUILD_DIR}/gdb/ 480 mkdir -p ${BUILD_DIR}/gdb/
439 pushd ${BUILD_DIR}/gdb/ 481 pushd ${BUILD_DIR}/gdb/
440 482
441 ${TMP}/gdb-7.5/configure \ 483 ${TMP}/gdb-7.5/configure \
442 --prefix=${INSTALL_ROOT} \ 484 --prefix=${INSTALL_ROOT} \
443 --target=mipsel-linux-gnu 485 --target=mipsel-linux-gnu
444 486
445 SubBanner "Make" 487 SubBanner "Make"
446 make ${MAKE_OPTS} all-gdb 488 make ${MAKE_OPTS} all-gdb
447 489
(...skipping 17 matching lines...) Expand all
465 grep -v "=======" |\ 507 grep -v "=======" |\
466 sed -e 's/0400000/70000000/g' > ${trusted_ld_script} 508 sed -e 's/0400000/70000000/g' > ${trusted_ld_script}
467 } 509 }
468 510
469 511
470 # ---------------------------------------------------------------------- 512 # ----------------------------------------------------------------------
471 # mips32 deb files to complete our code sourcery jail 513 # mips32 deb files to complete our code sourcery jail
472 # ---------------------------------------------------------------------- 514 # ----------------------------------------------------------------------
473 515
474 readonly REPO_DEBIAN=http://ftp.debian.org/debian 516 readonly REPO_DEBIAN=http://ftp.debian.org/debian
475 readonly MIPS32_PACKAGES=${REPO_DEBIAN}/dists/squeeze/main/binary-mipsel/Package s.bz2 517 readonly MIPS32_PACKAGES=${REPO_DEBIAN}/dists/wheezy/main/binary-mipsel/Packages .bz2
476 518
477 readonly BASE_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.squeeze.mipsel.base 519 readonly BASE_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.wheezy.mipsel.base
478 readonly EXTRA_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.squeeze.mipsel.extra 520 readonly EXTRA_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.wheezy.mipsel.extra
479 readonly TMP_BASE_PKG_MIPS32=${TMP}/packagelist.generated.squeeze.mipsel.base 521 readonly TMP_BASE_PKG_MIPS32=${TMP}/packagelist.generated.wheezy.mipsel.base
480 readonly TMP_EXTRA_PKG_MIPS32=${TMP}/packagelist.generated.squeeze.mipsel.extra 522 readonly TMP_EXTRA_PKG_MIPS32=${TMP}/packagelist.generated.wheezy.mipsel.extra
481 523
482 GeneratePackageLists() { 524 GeneratePackageLists() {
483 local sdk_target=$1 525 local sdk_target=$1
484 local packages= 526 local packages=
485 local TMP_PACKAGELIST= 527 local TMP_PACKAGELIST=
486 Banner "generating ${sdk_target} package lists for mips32" 528 Banner "generating ${sdk_target} package lists for mips32"
529 rm -f ${TMP}/Packages.bz2
487 DownloadOrCopy ${MIPS32_PACKAGES} 530 DownloadOrCopy ${MIPS32_PACKAGES}
488 bzcat ${TMP}/Packages.bz2\ 531 bzcat ${TMP}/Packages.bz2\
489 | egrep '^(Package:|Filename:)' > ${TMP}/Packages_mipsel 532 | egrep '^(Package:|Filename:)' > ${TMP}/Packages_mipsel
490 533
491 if [ ${sdk_target} == "nacl_sdk" ] ; then 534 if [ ${sdk_target} == "nacl_sdk" ] ; then
492 echo -n > ${TMP_BASE_PKG_MIPS32} 535 echo -n > ${TMP_BASE_PKG_MIPS32}
493 TMP_PACKAGELIST=${TMP_BASE_PKG_MIPS32} 536 TMP_PACKAGELIST=${TMP_BASE_PKG_MIPS32}
494 packages=$(cat ${BASE_PACKAGELIST_MIPS32}) 537 packages=$(cat ${BASE_PACKAGELIST_MIPS32})
495 elif [ ${sdk_target} == "chrome_sdk" ] ; then 538 elif [ ${sdk_target} == "chrome_sdk" ] ; then
496 echo -n > ${TMP_EXTRA_PKG_MIPS32} 539 echo -n > ${TMP_EXTRA_PKG_MIPS32}
(...skipping 24 matching lines...) Expand all
521 fi 564 fi
522 565
523 for file in ${DEP_FILES_NEEDED_MIPS32} ; do 566 for file in ${DEP_FILES_NEEDED_MIPS32} ; do
524 local package="${TMP}/${file##*/}" 567 local package="${TMP}/${file##*/}"
525 Banner "installing ${file}" 568 Banner "installing ${file}"
526 DownloadOrCopy ${REPO_DEBIAN}/${file} 569 DownloadOrCopy ${REPO_DEBIAN}/${file}
527 SubBanner "extracting to ${JAIL_MIPS32}" 570 SubBanner "extracting to ${JAIL_MIPS32}"
528 dpkg --fsys-tarfile ${package}\ 571 dpkg --fsys-tarfile ${package}\
529 | tar -xvf - --exclude=./usr/share -C ${JAIL_MIPS32} 572 | tar -xvf - --exclude=./usr/share -C ${JAIL_MIPS32}
530 done 573 done
574 }
531 575
532 Banner "some cleanup" 576 # Workaround for missing headers since pkg-config is not working correctly.
577 FixIncludes() {
578 Banner "Fixing includes"
579 pushd ${JAIL_MIPS32}/usr/include/glib-2.0
580 ln -s ../../lib/glib-2.0/include/glibconfig.h .
581 popd
582
583 pushd ${JAIL_MIPS32}/usr/include/gtk-2.0
584 ln -s ../../lib/gtk-2.0/include/gdkconfig.h .
585 popd
586
587 pushd ${JAIL_MIPS32}/usr/include/dbus-1.0/dbus
588 ln -s ../../../lib/dbus-1.0/include/dbus/dbus-arch-deps.h .
589 popd
590 }
591
592 FixLinks() {
593 Banner "Fixing links"
594 pushd ${JAIL_MIPS32}/lib/
595 mv mipsel-linux-gnu/* .
596 rm -rf mipsel-linux-gnu
597 ln -s . mipsel-linux-gnu
598 popd
533 599
534 pushd ${JAIL_MIPS32}/usr/lib/ 600 pushd ${JAIL_MIPS32}/usr/lib/
535 cleanlinks > /dev/null 2> /dev/null 601 mkdir -p pkgconfig
536 FixLibs 602 mv mipsel-linux-gnu/pkgconfig/* pkgconfig/
603 rm -rf mipsel-linux-gnu/pkgconfig
604 mv mipsel-linux-gnu/* .
605 rm -rf mipsel-linux-gnu
606 ln -s . mipsel-linux-gnu
607 popd
608
609 pushd ${JAIL_MIPS32}/usr/lib/
610 rm -f libstdc++.so*
611 ln -s ../../../mipsel-linux-gnu/lib/libstdc++.so.6.0.17 .
612 ln -s libstdc++.so.6.0.17 libstdc++.so.6
613 ln -s libstdc++.so.6.0.17 libstdc++.so
614
615 rm -f libgcc_s.so*
616 ln -s ../../../mipsel-linux-gnu/lib/libgcc_s.so.1 .
617 ln -s libgcc_s.so.1 libgcc_s.so
537 popd 618 popd
538 } 619 }
539 620
540 FixLibs() { 621 FixLibs() {
541 Banner "Fixing libraries" 622 Banner "Fixing libraries"
542 623
543 rm -f libbz2.so 624 readonly liblist="libbz2.so \
544 ln -s ../../lib/libbz2.so.1 libbz2.so 625 libcom_err.so \
626 libdbus-1.so \
627 libexpat.so \
628 libglib-2.0.so \
629 libgpg-error.so \
630 libkeyutils.so \
631 libpamc.so \
632 libpam_misc.so \
633 libpam.so \
634 libpci.so \
635 libpcre.so \
636 libpng12.so \
637 libudev.so \
638 libz.so"
545 639
546 rm -f libm.so 640 pushd ${JAIL_MIPS32}/usr/lib/
547 ln -s ../../lib/libm.so.6 libm.so 641 for library in ${liblist}; do
548 642 rm -f ${library}
549 rm -f libdl.so 643 ln -s ../../lib/${library}.[0123] ${library}
550 ln -s ../../lib/libdl.so.2 libdl.so 644 done
551 645 popd
552 rm -f librt.so
553 ln -s ../../lib/librt.so.1 librt.so
554
555 rm -f libpcre.so
556 ln -s ../../lib/libpcre.so.3 libpcre.so
557
558 rm -f libresolv.so
559 ln -s ../../lib/libresolv.so.2 libresolv.so
560
561 rm -f libglib-2.0.so
562 ln -s ../../lib/libglib-2.0.so.0 libglib-2.0.so
563
564 rm -f libudev.so
565 ln -s ../../lib/libudev.so.0 libudev.so
566
567 rm -f libcom_err.so
568 ln -s ../../lib/libcom_err.so.2 libcom_err.so
569
570 rm -f libXdmcp.so
571 ln -s ../../lib/libXdmcp.so.6 libXdmcp.so
572
573 rm -f libstdc++.so*
574 ln -s ../../../mipsel-linux-gnu/lib/libstdc++.so.6.0.17 .
575 ln -s libstdc++.so.6.0.17 libstdc++.so.6
576 ln -s libstdc++.so.6.0.17 libstdc++.so
577
578 rm -f libgcc_s.so*
579 ln -s ../../../mipsel-linux-gnu/lib/libgcc_s.so.1 .
580 ln -s libgcc_s.so.1 libgcc_s.so
581 } 646 }
582 647
583 BuildAndInstallQemu() { 648 BuildAndInstallQemu() {
584 local saved_dir=$(pwd) 649 local saved_dir=$(pwd)
585 local tmpdir="${TMP}/qemu-mips.nacl" 650 local tmpdir="${TMP}/qemu-mips.nacl"
586 local tarball="qemu-0.12.5.tar.gz" 651 local tarball="qemu-0.12.5.tar.gz"
587 652
588 Banner "Building qemu in ${tmpdir}" 653 Banner "Building qemu in ${tmpdir}"
589 654
590 rm -rf ${tmpdir} 655 rm -rf ${tmpdir}
(...skipping 17 matching lines...) Expand all
608 SubBanner "Configuring" 673 SubBanner "Configuring"
609 env -i PATH=/usr/bin/:/bin \ 674 env -i PATH=/usr/bin/:/bin \
610 ./configure \ 675 ./configure \
611 --cc=${CC32} \ 676 --cc=${CC32} \
612 --disable-system \ 677 --disable-system \
613 --enable-linux-user \ 678 --enable-linux-user \
614 --disable-darwin-user \ 679 --disable-darwin-user \
615 --disable-bsd-user \ 680 --disable-bsd-user \
616 --target-list=mipsel-linux-user \ 681 --target-list=mipsel-linux-user \
617 --disable-sdl \ 682 --disable-sdl \
618 --disable-linux-aio \ 683 --disable-linux-aio
619 --static
620 684
621 SubBanner "Make" 685 SubBanner "Make"
622 env -i PATH=/usr/bin/:/bin \ 686 env -i PATH=/usr/bin/:/bin \
623 make MAKE_OPTS=${MAKE_OPTS} 687 make MAKE_OPTS=${MAKE_OPTS}
624 688
625 SubBanner "Install" 689 SubBanner "Install"
626 cp mipsel-linux-user/qemu-mipsel ${INSTALL_ROOT}/qemu-mips32 690 cp mipsel-linux-user/qemu-mipsel ${INSTALL_ROOT}/qemu-mips32
627 cd ${saved_dir} 691 cd ${saved_dir}
628 cp tools/trusted_cross_toolchains/qemu_tool_mips32.sh ${INSTALL_ROOT} 692 cp tools/trusted_cross_toolchains/qemu_tool_mips32.sh ${INSTALL_ROOT}
629 ln -sf qemu_tool_mips32.sh ${INSTALL_ROOT}/run_under_qemu_mips32 693 ln -sf qemu_tool_mips32.sh ${INSTALL_ROOT}/run_under_qemu_mips32
(...skipping 10 matching lines...) Expand all
640 exit -1 704 exit -1
641 705
642 elif [[ $1 == "nacl_sdk" || $1 == "chrome_sdk" ]] ; then 706 elif [[ $1 == "nacl_sdk" || $1 == "chrome_sdk" ]] ; then
643 mkdir -p ${TMP} 707 mkdir -p ${TMP}
644 SanityCheck 708 SanityCheck
645 ClearInstallDir 709 ClearInstallDir
646 ClearBuildDir 710 ClearBuildDir
647 DownloadOrCopyAndInstallToolchain 711 DownloadOrCopyAndInstallToolchain
648 GeneratePackageLists $1 712 GeneratePackageLists $1
649 InstallMissingLibraries $1 713 InstallMissingLibraries $1
714 FixLinks
650 if [[ $1 == "nacl_sdk" ]] ; then 715 if [[ $1 == "nacl_sdk" ]] ; then
651 InstallTrustedLinkerScript 716 InstallTrustedLinkerScript
652 BuildAndInstallQemu 717 BuildAndInstallQemu
653 CreateTarBall $1 718 CreateTarBall $1
654 else 719 else
720 FixLibs
721 FixIncludes
655 CreateTarBall ${CROSS_TARBALL} 722 CreateTarBall ${CROSS_TARBALL}
656 fi 723 fi
657 724
658 else 725 else
659 Usage 726 Usage
660 exit -1 727 exit -1
661 728
662 fi 729 fi
663 730
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698