Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Fixed issue with MUSL patches being applied to non-MUSL targets, breaking them | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA1: | 
184c3ef7d2df23ec8c354bd7f1e6563e | 
| User & Date: | rkeene 2015-08-26 23:09:52 | 
Context
| 
   2015-08-26 
 | ||
| 23:13 | Build-CC 0.10 check-in: 55a54b8a75 user: rkeene tags: trunk, 0.10 | |
| 23:09 | Fixed issue with MUSL patches being applied to non-MUSL targets, breaking them check-in: 184c3ef7d2 user: rkeene tags: trunk | |
| 23:09 | Updated to latest libressl check-in: 12b597c851 user: rkeene tags: trunk | |
Changes
Added .fossil-settings/ignore-glob.
> > > > > > > > >  | 1 2 3 4 5 6 7 8 9  | platform/*-platform.tar.bz2 src/* binutils-*/* gcc-*/* glibc-*/* linux-*/* musl-*/* yasm-*/* zlib-*/*  | 
Changes to build-cc.
| ︙ | ︙ | |||
35 36 37 38 39 40 41  | 
# Tool versions
## SHA1 may be left blank to disable hashing
if [ -z "${BINUTILS_VERS}" ]; then
	BINUTILS_VERS='2.25'
	BINUTILS_SHA1='b46cc90ebaba7ffcf6c6d996d60738881b14e50d'
fi
if [ -z "${GCC_VERS}" ]; then
 | | |  | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50  | 
# Tool versions
## SHA1 may be left blank to disable hashing
if [ -z "${BINUTILS_VERS}" ]; then
	BINUTILS_VERS='2.25'
	BINUTILS_SHA1='b46cc90ebaba7ffcf6c6d996d60738881b14e50d'
fi
if [ -z "${GCC_VERS}" ]; then
	GCC_VERS='4.9.2'
	GCC_SHA1='79dbcb09f44232822460d80b033c962c0237c6d8'
fi
if [ -z "${GMP_VERS}" ]; then
	GMP_VERS='6.0.0a'
	GMP_SHA1='360802e3541a3da08ab4b55268c80f799939fddc'
fi
if [ -z "${MPFR_VERS}" ]; then
	MPFR_VERS='3.1.2'
 | 
| ︙ | ︙ | |||
165 166 167 168 169 170 171 172 173 174 175 176 177 178  | 
## Clean-up
if [ "$1" = "clean" -o "$1" = "distclean" ]; then
	rm -rf "${BINUTILS_DIR}" "${GCC_DIR}" "${GMP_DIR}" "${MPFR_DIR}" "${MPC_DIR}"
	for platform in "${platforms[@]}"; do
		rm -rf "gcc-${platform}"
		rm -rf "binutils-${platform}"
	done
	for appscript in scripts/* scripts/pre/* scripts/post/*; do
		"${appscript}" "clean" >/dev/null 2>/dev/null
	done
 | >  | 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179  | 
## Clean-up
if [ "$1" = "clean" -o "$1" = "distclean" ]; then
	rm -rf "${BINUTILS_DIR}" "${GCC_DIR}" "${GMP_DIR}" "${MPFR_DIR}" "${MPC_DIR}"
	for platform in "${platforms[@]}"; do
		rm -rf "gcc-${platform}"
		rm -rf "gcc-${GCC_VERS}-${platform}"
		rm -rf "binutils-${platform}"
	done
	for appscript in scripts/* scripts/pre/* scripts/post/*; do
		"${appscript}" "clean" >/dev/null 2>/dev/null
	done
 | 
| ︙ | ︙ | |||
200 201 202 203 204 205 206 207 208 209 210 211 212 213  | 
## Functions
. 'scripts/common'
## Determine path for this cross-compiler
CCNAME="$1"
CCDIR="${CCROOT}/${CCNAME}"
## Determine attributes for this compiler
### Per CPU
case "${CCNAME}" in
	hppa64-*|hppa1*-)
		BUILD_CC_GCC_CONFIGURE_EXTRA="${BUILD_CC_GCC_CONFIGURE_EXTRA} --disable-libquadmath"
		;;
 | > > >  | 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217  | 
## Functions
. 'scripts/common'
## Determine path for this cross-compiler
CCNAME="$1"
CCDIR="${CCROOT}/${CCNAME}"
## Rename GCC directory since it may be patched based on the platform
GCC_DIR="${GCC_DIR}-${CCNAME}"
## Determine attributes for this compiler
### Per CPU
case "${CCNAME}" in
	hppa64-*|hppa1*-)
		BUILD_CC_GCC_CONFIGURE_EXTRA="${BUILD_CC_GCC_CONFIGURE_EXTRA} --disable-libquadmath"
		;;
 | 
| ︙ | ︙ | |||
390 391 392 393 394 395 396  | 
		done
	fi
	rm -rf "binutils-${CCNAME}"
	mkdir "binutils-${CCNAME}"
	cd "binutils-${CCNAME}" || exit -1
 | |  | 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408  | 
		done
	fi
	rm -rf "binutils-${CCNAME}"
	mkdir "binutils-${CCNAME}"
	cd "binutils-${CCNAME}" || exit -1
	"../${BINUTILS_DIR}/configure" --enable-gold=no --enable-ld=default --target="${CCNAME}" --prefix="${CCDIR}" --disable-nls --with-sysroot="${CCDIR}/${CCNAME}" --with-build-sysroot="${CCDIR}/${CCNAME}" --program-prefix="${CCNAME}-"
	${MAKE} ${BUILD_CC_MAKE_FLAGS} || exit 1
	${MAKE} ${BUILD_CC_MAKE_FLAGS} install || exit 1
	rm -f "${CCDIR}/bin/${CCNAME}-rebuild-binutils"
) || exit 1
 | 
| ︙ | ︙ | |||
439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475  | 
			fi
		fi
	fi
	echo " * Building GNU C Compiler version ${GCC_VERS} for ${CCNAME}, ${STAGE}"
	if [ ! -d "${GCC_DIR}" ]; then
		# Download sources required
		download "${GCC_URL}" "${GCC_TARBALL}" "${GCC_SHA1}"
		download "${GMP_URL}" "${GMP_TARBALL}" "${GMP_SHA1}"
		download "${MPFR_URL}" "${MPFR_TARBALL}" "${MPFR_SHA1}"
		download "${MPC_URL}" "${MPC_TARBALL}" "${MPC_SHA1}"
		# Extract sources
		bzip2 -dc "${GCC_TARBALL}" | "${TAR:-tar}" -xf -
		bzip2 -dc "${GMP_TARBALL}" | "${TAR:-tar}" -xf -
		bzip2 -dc "${MPFR_TARBALL}" | "${TAR:-tar}" -xf -
		gzip -dc "${MPC_TARBALL}" | "${TAR:-tar}" -xf -
		# Arrange sources as needed
		rm -rf "${GCC_DIR}/gmp"
		rm -rf "${GCC_DIR}/mpfr"
		rm -rf "${GCC_DIR}/mpc"
		mv "${GMP_DIR}" "${GCC_DIR}/gmp"
		mv "${MPFR_DIR}" "${GCC_DIR}/mpfr"
		mv "${MPC_DIR}" "${GCC_DIR}/mpc"
		# Apply patches
		## Apply patch files
		for patchfile in "$(pwd)/patches/gcc"/*.diff; do
			patchfile_checkscript="$(echo "${patchfile}" | sed 's@\.diff$@.sh@')"
			if [ ! -f "${patchfile}" ]; then
				continue
			fi
			if [ -x "${patchfile_checkscript}" ]; then
 | > > > > > > > > |  | 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495  | 
			fi
		fi
	fi
	echo " * Building GNU C Compiler version ${GCC_VERS} for ${CCNAME}, ${STAGE}"
	if [ ! -d "${GCC_DIR}" ]; then
		# Sanity
		rm -rf "gcc-${GCC_VERS}"
		# Download sources required
		download "${GCC_URL}" "${GCC_TARBALL}" "${GCC_SHA1}"
		download "${GMP_URL}" "${GMP_TARBALL}" "${GMP_SHA1}"
		download "${MPFR_URL}" "${MPFR_TARBALL}" "${MPFR_SHA1}"
		download "${MPC_URL}" "${MPC_TARBALL}" "${MPC_SHA1}"
		# Extract sources
		bzip2 -dc "${GCC_TARBALL}" | "${TAR:-tar}" -xf -
		bzip2 -dc "${GMP_TARBALL}" | "${TAR:-tar}" -xf -
		bzip2 -dc "${MPFR_TARBALL}" | "${TAR:-tar}" -xf -
		gzip -dc "${MPC_TARBALL}" | "${TAR:-tar}" -xf -
		# Rename GCC dir to the name we need
		rm -rf "${GCC_DIR}"
		mv "gcc-${GCC_VERS}" "${GCC_DIR}"
		# Arrange sources as needed
		rm -rf "${GCC_DIR}/gmp"
		rm -rf "${GCC_DIR}/mpfr"
		rm -rf "${GCC_DIR}/mpc"
		mv "${GMP_DIR}" "${GCC_DIR}/gmp"
		mv "${MPFR_DIR}" "${GCC_DIR}/mpfr"
		mv "${MPC_DIR}" "${GCC_DIR}/mpc"
		# Apply patches
		## Apply patch files
		for patchfile in "$(pwd)/patches/gcc"/*.diff; do
			patchfile_checkscript="$(echo "${patchfile}" | sed 's@\.diff$@.sh@')"
			if [ ! -f "${patchfile}" ]; then
				continue
			fi
			if [ -x "${patchfile_checkscript}" ]; then
				if ! "${patchfile_checkscript}" "${GCC_VERS}" "${CCNAME}"; then
					continue
				fi
			fi
			(
				echo " * Applying patch ${patchfile}"
 | 
| ︙ | ︙ | |||
529 530 531 532 533 534 535 536  | 
				--disable-libitm --disable-libquadmath --disable-libsanitizer --disable-libssp \
				--disable-libvtv --disable-libcilkrts --with-system-zlib ${BUILD_CC_GCC_CONFIGURE_EXTRA}
			${MAKE} ${BUILD_CC_MAKE_FLAGS} all-gcc || exit 1
			${MAKE} ${BUILD_CC_MAKE_FLAGS} install-gcc || exit 1
			${MAKE} ${BUILD_CC_MAKE_FLAGS} all-target-libgcc || exit 1
			${MAKE} ${BUILD_CC_MAKE_FLAGS} install-target-libgcc || exit 1
		else
			### Stage 2 -- the full compiler suite
 | > > > > |  | 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560  | 
				--disable-libitm --disable-libquadmath --disable-libsanitizer --disable-libssp \
				--disable-libvtv --disable-libcilkrts --with-system-zlib ${BUILD_CC_GCC_CONFIGURE_EXTRA}
			${MAKE} ${BUILD_CC_MAKE_FLAGS} all-gcc || exit 1
			${MAKE} ${BUILD_CC_MAKE_FLAGS} install-gcc || exit 1
			${MAKE} ${BUILD_CC_MAKE_FLAGS} all-target-libgcc || exit 1
			${MAKE} ${BUILD_CC_MAKE_FLAGS} install-target-libgcc || exit 1
		else
			if [ -n "${BUILD_CC_EXTRA_LANGUAGES}" ]; then
				BUILD_CC_EXTRA_LANGUAGES=",${BUILD_CC_EXTRA_LANGUAGES}"
			fi
			### Stage 2 -- the full compiler suite
			"../${GCC_DIR}/configure" --target="${CCNAME}" --prefix="${CCDIR}" --with-headers="${CCDIR}/${CCNAME}/include" --disable-nls --enable-languages="c,c++${BUILD_CC_EXTRA_LANGUAGES}" --with-sysroot="${CCDIR}/${CCNAME}" --with-build-sysroot="${CCDIR}/${CCNAME}" --program-prefix="${CCNAME}-" --with-system-zlib ${BUILD_CC_GCC_CONFIGURE_EXTRA}
			${MAKE} ${BUILD_CC_MAKE_FLAGS} || exit 1
			${MAKE} ${BUILD_CC_MAKE_FLAGS} install || exit 1
		fi
	) || exit 1
)
retval="$?"
 | 
| ︙ | ︙ | 
Changes to patches/gcc/gcc-4.8.4-musl.diff.
| ︙ | ︙ | |||
809 810 811 812 813 814 815  | 
 
+  if (!implicit && value.value && !integer_zerop (value.value))
+    constructor_zeroinit = 0;
+
   /* Handle superfluous braces around string cst as in
      char x[] = {"foo"}; */
   if (string_flag
 | > > > > > > > > > > > > > > > >  | 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831  | 
 
+  if (!implicit && value.value && !integer_zerop (value.value))
+    constructor_zeroinit = 0;
+
   /* Handle superfluous braces around string cst as in
      char x[] = {"foo"}; */
   if (string_flag
Do not use weak references on any targets for gthread. Necessary on musl, safe elsewhere.
diff -r d6371c4d8f65 libgcc/gthr.h
--- a/libgcc/gthr.h	Thu Jan 29 19:10:06 2015 -0500
+++ b/libgcc/gthr.h	Thu Jan 29 19:10:12 2015 -0500
@@ -136,10 +136,8 @@
 /* The pe-coff weak support isn't fully compatible to ELF's weak.
    For static libraries it might would work, but as we need to deal
    with shared versions too, we disable it for mingw-targets.  */
-#ifdef __MINGW32__
 #undef GTHREAD_USE_WEAK
 #define GTHREAD_USE_WEAK 0
-#endif
 
 #ifndef GTHREAD_USE_WEAK
 #define GTHREAD_USE_WEAK 1
 | 
Changes to patches/gcc/gcc-4.8.4-musl.sh.
1 2  | #! /usr/bin/env sh  | > > > | > > > > > > > > > > | |  | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22  | 
#! /usr/bin/env sh
GCC_VERS="$1"
CCNAME="$2"
case "${CCNAME}" in
	*-musl)
		;;
	*)
		exit 1
		;;
esac
case "${GCC_VERS}" in
	4.8.[456789])
		;;
	*)
		exit 1
		;;
esac
exit 0
 | 
Changes to patches/gcc/gcc-4.9.0-musl.sh.
1 2  | #! /usr/bin/env sh  | > > > | > > > > > > > >  | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  | 
#! /usr/bin/env sh
GCC_VERS="$1"
CCNAME="$2"
case "${CCNAME}" in
	*-musl)
		;;
	*)
		exit 1
		;;
esac
case "${GCC_VERS}" in
	4.9.*)
		exit 0
		;;
esac
exit 1
 |