You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(11) |
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2002 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(12) |
Nov
|
Dec
|
2003 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(8) |
Dec
(1) |
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(9) |
Jun
(5) |
Jul
(1) |
Aug
|
Sep
(4) |
Oct
|
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
(1) |
Apr
(35) |
May
(9) |
Jun
(10) |
Jul
|
Aug
(6) |
Sep
(23) |
Oct
(24) |
Nov
(18) |
Dec
(81) |
2006 |
Jan
(37) |
Feb
(2) |
Mar
(10) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(23) |
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Jan-Benedict G. <jb...@us...> - 2005-12-17 17:23:54
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26316 Modified Files: run_test_build.sh Log Message: - A subject instead of several trashy email addresses is preferred... Index: run_test_build.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/run_test_build.sh,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- run_test_build.sh 17 Dec 2005 13:11:05 -0000 1.6 +++ run_test_build.sh 17 Dec 2005 17:23:45 -0000 1.7 @@ -24,14 +24,18 @@ I_AM="Nemo" VERSION="$Revision$" +START_TIME="`date --utc`" # # $1: Subject # function send_stdin() { + STOP_TIME="`date --utc`" mail -a "X-Build-Robot-Id: ${I_AM}, version${VERSION} running on `hostname`" \ - -a "X-Build-Robot-Target: ${TARGET}" \ - "$1" ${SEND_MAIL_TO} + -a "X-Build-Robot-Target: ${TARGET}" \ + -a "X-Build-Robot-Start: ${START_TIME}" \ + -a "X-Build-Robot-Stop: ${STOP_TIME}" \ + -s "$1" ${SEND_MAIL_TO} } function lock_down() { |
From: Jan-Benedict G. <jb...@us...> - 2005-12-17 13:11:15
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21070 Modified Files: run_test_build.sh Log Message: - Lets try this. Index: run_test_build.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/run_test_build.sh,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- run_test_build.sh 17 Dec 2005 13:09:20 -0000 1.5 +++ run_test_build.sh 17 Dec 2005 13:11:05 -0000 1.6 @@ -23,15 +23,13 @@ LOCKFILE="${7}" I_AM="Nemo" -Revision=Revision -foo="\$" -VERSION="$Revision$foo" +VERSION="$Revision$" # # $1: Subject # function send_stdin() { - mail -a "X-Build-Robot-Id: ${I_AM}, version ${VERSION} running on `hostname`" \ + mail -a "X-Build-Robot-Id: ${I_AM}, version${VERSION} running on `hostname`" \ -a "X-Build-Robot-Target: ${TARGET}" \ "$1" ${SEND_MAIL_TO} } |
From: Jan-Benedict G. <jb...@us...> - 2005-12-17 13:09:29
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20647 Modified Files: run_test_build.sh Log Message: - We all love CVS, don't we? Index: run_test_build.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/run_test_build.sh,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- run_test_build.sh 17 Dec 2005 13:05:48 -0000 1.4 +++ run_test_build.sh 17 Dec 2005 13:09:20 -0000 1.5 @@ -23,7 +23,9 @@ LOCKFILE="${7}" I_AM="Nemo" -VERSION="$Id$" +Revision=Revision +foo="\$" +VERSION="$Revision$foo" # # $1: Subject |
From: Jan-Benedict G. <jb...@us...> - 2005-12-17 13:05:56
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20143 Modified Files: run_test_build.sh Log Message: - Add some email headers. Index: run_test_build.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/run_test_build.sh,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- run_test_build.sh 16 Dec 2005 12:23:06 -0000 1.3 +++ run_test_build.sh 17 Dec 2005 13:05:48 -0000 1.4 @@ -23,12 +23,15 @@ LOCKFILE="${7}" I_AM="Nemo" +VERSION="$Id$" # # $1: Subject # function send_stdin() { - mail -s "$1" ${SEND_MAIL_TO} + mail -a "X-Build-Robot-Id: ${I_AM}, version ${VERSION} running on `hostname`" \ + -a "X-Build-Robot-Target: ${TARGET}" \ + "$1" ${SEND_MAIL_TO} } function lock_down() { |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 16:09:10
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2080 Removed Files: uclibc-000033-config-____TEMPORARY____-no-glob-support.patch Log Message: - Fixed upstream. --- uclibc-000033-config-____TEMPORARY____-no-glob-support.patch DELETED --- |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 12:23:15
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15547 Modified Files: run_test_build.sh Log Message: - Call me "Nemo", for now... Index: run_test_build.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/run_test_build.sh,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- run_test_build.sh 16 Dec 2005 11:51:53 -0000 1.2 +++ run_test_build.sh 16 Dec 2005 12:23:06 -0000 1.3 @@ -22,6 +22,8 @@ BUILD_BAD="${6}" LOCKFILE="${7}" +I_AM="Nemo" + # # $1: Subject # @@ -42,7 +44,7 @@ echo "if the lockfile is stale and remove it if neccessary." echo "" echo "Thanks," - echo " Your automatic buildscript" + echo " Your ${I_AM}" echo "" ) | send_stdin "Found lockfile" exit 1 @@ -70,7 +72,7 @@ echo "------------------ >8 =========================" echo "" echo "Thanks," - echo " Your automatic buildscript" + echo " Your ${I_AM}" echo "" ) | send_stdin "Updating sources failed" unlock @@ -95,7 +97,7 @@ echo "------------------ >8 =========================" echo "" echo "Have a nice day," - echo " Your automatic buildscript" + echo " Your ${I_AM}" echo "" ) | send_stdin "Successful build for ${TARGET}" mv "${BUILD_DIRECTORY}/build.log" "${BUILD_OKAY}" @@ -115,7 +117,7 @@ echo "------------------ >8 =========================" echo "" echo "Have a nice day," - echo " Your automatic buildscript" + echo " ${I_AM}" echo "" ) | send_stdin "Failed build for ${TARGET}" mv "${BUILD_DIRECTORY}/build.log" "${BUILD_BAD}" |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:52:02
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7950 Modified Files: run_test_build.sh Log Message: - Now that the update script tries several times to contact the f*ing CVS servers at SF.net, we maybe succeed at some point... Index: run_test_build.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/run_test_build.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- run_test_build.sh 16 Dec 2005 11:30:07 -0000 1.1 +++ run_test_build.sh 16 Dec 2005 11:51:53 -0000 1.2 @@ -57,7 +57,6 @@ } function update_sources() { - return 0 if ! OUTPUT="`update_upstream_cvs_sandboxes.sh 2>&1`"; then ( echo "Hello!" |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:50:37
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7787 Modified Files: update_upstream_cvs_sandboxes.sh Log Message: - Try updating the sandboxes several times (5x, right now). Index: update_upstream_cvs_sandboxes.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/update_upstream_cvs_sandboxes.sh,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- update_upstream_cvs_sandboxes.sh 28 Oct 2005 17:08:07 -0000 1.5 +++ update_upstream_cvs_sandboxes.sh 16 Dec 2005 11:50:28 -0000 1.6 @@ -1,12 +1,12 @@ #!/bin/sh -set -e - if [ ! -d "${UPSTREAM_SANDBOXES_PATH}" ]; then echo "\$UPSTREAM_SANDBOXES_PATH isn't set--please source vax_toolchain_config to set it" >&2 exit 1 fi +MAX_TRIES=5 + # # CVS managed archives # @@ -15,10 +15,19 @@ glibc/ports-upstream-HEAD \ linux/linux-upstream-HEAD; do pushd "${UPSTREAM_SANDBOXES_PATH}/${COMPONENT}" - if ! cvs -z9 update -d -P; then - echo "Failed to update $COMPONENT" >&2 - exit 1 - fi + for i in `seq 1 "${MAX_TRIES}"`; do + echo "Updating ${COMPONENT}, try #${i}..." + cvs -z9 update -d -P + RET=$? + if [ "${RET}" -eq 0 ]; then + break + else + if [ "${i}" -eq "${MAX_TIES}" ]; then + echo "Failed ${MAX_TRIES} times to update ${COMPONENT}" >&2 + exit 1 + fi + fi + done popd done @@ -28,10 +37,20 @@ for COMPONENT in uclibc/uclibc-upstream-HEAD \ gcc/gcc-upstream-HEAD; do pushd "${UPSTREAM_SANDBOXES_PATH}/${COMPONENT}" - if ! svn update; then - echo "Failed to update $COMPONENT" >&2 - exit 1 - fi + for i in `seq 1 "${MAX_TRIES}"`; do + echo "Updating ${COMPONENT}, try #${i}..." + svn update + RET=$? + if [ "${RET}" -eq 0 ]; then + break + else + svn cleanup + if [ "${i}" -eq "${MAX_TIES}" ]; then + echo "Failed ${MAX_TRIES} times to update ${COMPONENT}" >&2 + exit 1 + fi + fi + done popd done |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:49:48
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7555 Modified Files: compare_buildlog.sh Log Message: - Hide random /tmp/ccXXXXXX.s assembly file names for cleaner compares. Index: compare_buildlog.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/compare_buildlog.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- compare_buildlog.sh 9 Dec 2005 20:11:01 -0000 1.1 +++ compare_buildlog.sh 16 Dec 2005 11:49:36 -0000 1.2 @@ -8,8 +8,8 @@ exit 1 fi -cat "$1" | sed -e 's/[[:digit:]]\{8\}-[[:digit:]]\{6\}/xxxxxxxx-xxxxxx/g' > "${TEMP1FILE}" -cat "$2" | sed -e 's/[[:digit:]]\{8\}-[[:digit:]]\{6\}/xxxxxxxx-xxxxxx/g' > "${TEMP2FILE}" +cat "$1" | sed -e 's/[[:digit:]]\{8\}-[[:digit:]]\{6\}/xxxxxxxx-xxxxxx/g' | sed -e 's#^/tmp/cc......\.s#/tmp/ccXXXXXX.s#' > "${TEMP1FILE}" +cat "$2" | sed -e 's/[[:digit:]]\{8\}-[[:digit:]]\{6\}/xxxxxxxx-xxxxxx/g' | sed -e 's#^/tmp/cc......\.s#/tmp/ccXXXXXX.s#' > "${TEMP2FILE}" diff -u "${TEMP1FILE}" "${TEMP2FILE}" |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:39:41
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5789 Added Files: uclibc-000033-config-____TEMPORARY____-no-glob-support.patch Log Message: - Temporarily disabling glob support from uClibc. It broke in upstream when they hid some of it's internald. (All this hiding is adding a lot of work and trouble and I think it's not worth it at all! Listen, you uClibc core developers! Listen!) --- NEW FILE: uclibc-000033-config-____TEMPORARY____-no-glob-support.patch --- --- src-uclibc-fresh/.config 2005-12-16 11:38:34.000000000 +0100 +++ src-uclibc-hacked/.config 2005-12-16 11:38:59.000000000 +0100 @@ -122,7 +122,7 @@ UCLIBC_HAS_REGEX=y # UCLIBC_HAS_REGEX_OLD is not set # UCLIBC_HAS_WORDEXP is not set # UCLIBC_HAS_FTW is not set -UCLIBC_HAS_GLOB=y +# UCLIBC_HAS_GLOB is not set # # Library Installation Options |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:37:18
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5519 Added Files: uclibc-000032-call__exit_internal_from_clone.patch Log Message: - Call _exit_internal() instead of _exit() from within clone(). --- NEW FILE: uclibc-000032-call__exit_internal_from_clone.patch --- --- src-uclibc-fresh/libc/sysdeps/linux/vax/clone.S 2005-12-16 10:01:47.000000000 +0100 +++ src-uclibc-hacked/libc/sysdeps/linux/vax/clone.S 2005-12-16 10:09:41.000000000 +0100 @@ -21,6 +21,8 @@ #include <bits/errno.h> #include <sys/syscall.h> +#warning "This file contains a hardcoded constant for SYS_clone" + .section .rodata .align 2 .LC0: .long 120 /* SYS_clone */ @@ -66,10 +68,10 @@ __clone: movl (%r1), %r0 calls $1, (%r0) pushl %r0 - calls $1, _exit + calls $1, _exit_internal CLONE_ERROR_LABEL: - cmpl %r6, $-126 /* -ENOKEY?!?! Fuck, this must be wrong! */ + cmpl %r6, $-126 /* -ENOKEY?!?! Fuck, this must be wrong! FIXME */ jlequ CLONE_RETURN_LABEL calls $0, __errno_location mnegl %r6, (%r0) |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:36:38
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5427 Added Files: uclibc-000031-hide-vfork.patch Log Message: - Hide vfork(). --- NEW FILE: uclibc-000031-hide-vfork.patch --- diff -Nurp src-uclibc-fresh/libc/sysdeps/linux/vax/vfork.c src-uclibc-hacked/libc/sysdeps/linux/vax/vfork.c --- src-uclibc-fresh/libc/sysdeps/linux/vax/vfork.c 2005-12-16 10:01:46.000000000 +0100 +++ src-uclibc-hacked/libc/sysdeps/linux/vax/vfork.c 2005-12-16 10:05:35.000000000 +0100 @@ -2,11 +2,12 @@ #include <features.h> #include <sys/types.h> #include <sys/syscall.h> - - #include <unistd.h> -pid_t vfork(void) +pid_t attribute_hidden +__vfork (void) { - return fork(); + return __fork (); } +strong_alias(__vfork,vfork) + |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:35:39
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4873 Added Files: uclibc-000030-disable_linktime_warning.patch Log Message: - This modifies the link_warning() macro so that it "only" warns during building and doesn't abort build with an error when the .s file is given to gas. - I've looked into GAS, but I must admit I fail to really figure out how comments are handled. The only "real" place I've found to handle this is in read.c, which really expects "#APP\n" or "#NO_APP", which marks user-supplied assmebly (instead of GCC-generated). Though it seems to work for other archs/targets so I seem to miss the point. It would be nice if you'd look at this. --- NEW FILE: uclibc-000030-disable_linktime_warning.patch --- diff -Nurp src-uclibc-fresh/include/libc-internal.h src-uclibc-hacked/include/libc-internal.h --- src-uclibc-fresh/include/libc-internal.h 2005-12-16 10:26:47.000000000 +0100 +++ src-uclibc-hacked/include/libc-internal.h 2005-12-16 10:27:25.000000000 +0100 @@ -73,6 +73,11 @@ /* Tacking on "\n\t#" to the section name makes gcc put it's bogus section attributes on what looks like a comment to the assembler. */ # define __sec_comment "\n\t#" +# ifdef __vax__ +# warning "__sec_comment commented out..." +# undef __sec_comment +# define __sec_comment "" +# endif # ifdef __cris__ # define link_warning(symbol, msg) # else |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:32:11
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4736 Added Files: uclibc-000029-config-UCLIBC_HAS_REGEX_OLD.patch Log Message: - Lets use the new regex code. --- NEW FILE: uclibc-000029-config-UCLIBC_HAS_REGEX_OLD.patch --- diff -Nurp src-uclibc-fresh/.config src-uclibc-hacked/.config --- src-uclibc-fresh/.config 2005-12-16 08:32:47.000000000 +0100 +++ src-uclibc-hacked/.config 2005-12-16 08:34:27.000000000 +0100 @@ -119,6 +119,7 @@ UCLIBC_HAS_GNU_GETOPT=y # Big and Tall # UCLIBC_HAS_REGEX=y +# UCLIBC_HAS_REGEX_OLD is not set # UCLIBC_HAS_WORDEXP is not set # UCLIBC_HAS_FTW is not set UCLIBC_HAS_GLOB=y |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:30:22
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4163 Modified Files: README Added Files: run_test_build.sh Log Message: - Here's my build robot, barely running and not yet calling update_cvs, because esp. the SF CVS server is resetting the TCP connection at a rate of ~ 80 %... - I need a nice name for it! - If you want to get build results, drop me an email. It'll always send the diff towards the last successful build. Index: README =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/README,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- README 5 Jun 2005 16:24:29 -0000 1.11 +++ README 16 Dec 2005 11:30:07 -0000 1.12 @@ -117,3 +117,20 @@ manually, but it's of little use... It'll copy the first directory's contents into the second directory. + +run_test_build.sh +~~~~~~~~~~~~~~~~~ +This is a script internally calling update_cvs and build_toolchain trying +to build a complete toolchain. It'll keep the build log (be it successful +or not) into a given location and send out an email to report it's work. +I call it from CRON like this: + + /home/jbglaw/vax/checkout/toolchain/scripts/run_test_build.sh \ + vax-linux-uclibc \ + /tmp/build-temp-vax-linux \ + /home/jbglaw/vax/checkout/toolchain/scripts/vax_toolchain_config \ + 'jb...@lu...' \ + /tmp/build.ack \ + /tmp/build.nack \ + /tmp/build.running + --- NEW FILE: run_test_build.sh --- #!/bin/sh if [ $# -ne 7 ]; then echo "$0 target /path/to/build-directory /path/to/vax_toolchain_config ma...@ad... /path/to/build.okay /path/to/build.not-okay /path/to/lockfile" >&2 echo "" >&2 echo "target -- Something like vax-linux or vax-linux-uclibc" >&2 echo "/path/to/build-directory -- This is where all the stuff is build in, /tmp/vax-linux would be a nice name." >&2 echo "/path/to/vax_toolchain_config -- File containing various settings" >&2 echo "ma...@ad... -- Email address/addresses to send result to. Beware, this is _one_ argument, use quotes" >&2 echo "/path/to/build.okay -- Location to save the build.log to IFF the build went okay" >&2 echo "/path/to/build.not-okay -- Location to save the build.log to IFF the build was unsuccessful" >&2 echo "/path/to/build.not-okay -- Location to save the build.log to IFF the build was unsuccessful" >&2 echo "/path/to/lockfile -- GLOBAL lockfile for CVS/SVN updates and ALL and ANY builds" >&2 exit 1 fi TARGET="${1}" BUILD_DIRECTORY="${2}" SOURCE_FILE="${3}" SEND_MAIL_TO="${4}" BUILD_OKAY="${5}" BUILD_BAD="${6}" LOCKFILE="${7}" # # $1: Subject # function send_stdin() { mail -s "$1" ${SEND_MAIL_TO} } function lock_down() { if [ -f "${LOCKFILE}" ]; then ( echo "Hello!" echo "" echo "Unfortunately, the lock file (${LOCKFILE})" echo "is already (or still) there so I'll abort and try" echo "again later. Maybe that'll work." echo "" echo "If you continue to get this message, please check" echo "if the lockfile is stale and remove it if neccessary." echo "" echo "Thanks," echo " Your automatic buildscript" echo "" ) | send_stdin "Found lockfile" exit 1 else touch "${LOCKFILE}" fi } function unlock() { rm -rf "${BUILD_DIRECTORY}" rm -f "${LOCKFILE}" } function update_sources() { return 0 if ! OUTPUT="`update_upstream_cvs_sandboxes.sh 2>&1`"; then ( echo "Hello!" echo "" echo "Seems updating the source code failed. I'll try" echo "again later on, but for reference, here are the" echo "last 30 lines of my attempt:" echo "" echo "================== 8< -------------------------" echo "${OUTPUT}" | tail -n 30 echo "------------------ >8 =========================" echo "" echo "Thanks," echo " Your automatic buildscript" echo "" ) | send_stdin "Updating sources failed" unlock exit 1 fi } . "${SOURCE_FILE}" lock_down update_sources if build_toolchain.sh --base "${BUILD_DIRECTORY}" --log-to-file "${TARGET}" > /dev/null 2>&1; then # Build is okay ( echo "Hello!" echo "" echo "Seems building for target ${TARGET} worked well," echo "so here's the difference of the build log, if any:" echo "" echo "================== 8< -------------------------" compare_buildlog.sh "${BUILD_OKAY}" "${BUILD_DIRECTORY}/build.log" echo "------------------ >8 =========================" echo "" echo "Have a nice day," echo " Your automatic buildscript" echo "" ) | send_stdin "Successful build for ${TARGET}" mv "${BUILD_DIRECTORY}/build.log" "${BUILD_OKAY}" unlock exit 0 else # Build fucked up ( echo "Hello!" echo "" echo "Seems building for target ${TARGET} failed :-(" echo "Here's the difference of the build log of the last" echo "known-successful build:" echo "" echo "================== 8< -------------------------" compare_buildlog.sh "${BUILD_OKAY}" "${BUILD_DIRECTORY}/build.log" echo "------------------ >8 =========================" echo "" echo "Have a nice day," echo " Your automatic buildscript" echo "" ) | send_stdin "Failed build for ${TARGET}" mv "${BUILD_DIRECTORY}/build.log" "${BUILD_BAD}" unlock exit 1 fi |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:25:32
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3623 Modified Files: build_toolchain.sh Log Message: - Allow to supply a base directory into which all building/installing will happen. - Really only build uClibc components if needed. Index: build_toolchain.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/build_toolchain.sh,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- build_toolchain.sh 14 Dec 2005 20:13:25 -0000 1.38 +++ build_toolchain.sh 16 Dec 2005 11:25:09 -0000 1.39 @@ -76,6 +76,11 @@ # while [ "$#" -gt 0 ]; do case "${1}" in + --base) + shift + ALL_BASE="${1}" + shift + ;; --timestamp) shift TIMESTAMP_BINUTILS="${1}" @@ -232,6 +237,8 @@ [ "${DO_CHECKS_GLIBC}" -eq 0 ] && echo " Check GNU libc: no" [ "${DO_CHECKS_UCLIBC}" -ne 0 ] && echo " Check uClibc: yes" [ "${DO_CHECKS_UCLIBC}" -eq 0 ] && echo " Check uClibc: no" +[ -z "${ALL_BASE}" ] && echo " Build base directory: default" +[ ! -z "${ALL_BASE}" ] && echo " Build base directory: ${ALL_BASE}" # @@ -371,7 +378,9 @@ # # Set some variables # -ALL_BASE="${BUILD_BASE_DIR}/build-${NOW}-${TARGET}" +if [ -z "${ALL_BASE}" ]; then + ALL_BASE="${BUILD_BASE_DIR}/build-${NOW}-${TARGET}" +fi SRC_BASE="${ALL_BASE}/src" BUILD_BASE="${ALL_BASE}/build" INSTALL_BASE="${ALL_BASE}/install" @@ -459,8 +468,8 @@ # [ "${DO_PATCHES_BINUTILS}" -ne 0 ] && execute try_patches.sh "binutils" "${BINUTILS_SRC}" "${VAX_PATCHES_PATH}" [ "${DO_PATCHES_GCC}" -ne 0 ] && execute try_patches.sh "gcc" "${GCC_SRC}" "${VAX_PATCHES_PATH}" -[ "${DO_PATCHES_GLIBC}" -ne 0 ] && execute try_patches.sh "glibc" "${GLIBC_SRC}" "${VAX_PATCHES_PATH}" [ "${DO_PATCHES_PORTS}" -ne 0 ] && execute try_patches.sh "ports" "${GLIBC_SRC}" "${VAX_PATCHES_PATH}" +[ "${DO_PATCHES_GLIBC}" -ne 0 ] && execute try_patches.sh "glibc" "${GLIBC_SRC}" "${VAX_PATCHES_PATH}" [ "${DO_PATCHES_UCLIBC}" -ne 0 ] && execute try_patches.sh "uclibc" "${UCLIBC_SRC}" "${VAX_PATCHES_PATH}" @@ -563,58 +572,66 @@ popd # +# Hash again +# +hash -r + +# # Configure the kernel. We need prepared kernel headers. # pushd "${LINUX_SRC}" - make ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${TARGET}-" defconfig - make ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${TARGET}-" prepare + execute make ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${TARGET}-" defconfig + execute make ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${TARGET}-" prepare popd # # Build uClibc # -pushd "${UCLIBC_SRC}" # Yes, we build within the source dir... - # Configure - # RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/" - # DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/usr/" - echo "KERNEL_SOURCE=\"${LINUX_SRC}\"" >> .config - # echo "DEVEL_PREFIX=\"${INSTALL_BASE}/usr/\"" >> .config - echo "DEVEL_PREFIX=\"${INSTALL_BASE}/usr/${TARGET}/lib\"" >> .config - echo "RUNTIME_PREFIX=\"${INSTALL_BASE}/runtime-prefix/\"" +if build "${BUILD_UCLIBC}"; then + pushd "${UCLIBC_SRC}" # Yes, we build within the source dir... + # Configure + # RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/" + # DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/usr/" + echo "KERNEL_SOURCE=\"${LINUX_SRC}\"" >> .config + # echo "DEVEL_PREFIX=\"${INSTALL_BASE}/usr/\"" >> .config + echo "DEVEL_PREFIX=\"${INSTALL_BASE}/usr/${TARGET}/lib\"" >> .config + echo "RUNTIME_PREFIX=\"${INSTALL_BASE}/runtime-prefix/\"" - # Prepare - build "${BUILD_UCLIBC}" && execute ./extra/scripts/create_makefiles.sh - build "${BUILD_UCLIBC}" && (yes "" | execute make oldconfig;) + # Prepare + build "${BUILD_UCLIBC}" && execute ./extra/scripts/create_makefiles.sh + build "${BUILD_UCLIBC}" && (yes "" | execute make oldconfig;) - # Build - build "${BUILD_GCC1}" && execute make ${MAKEFLAGS} + # Build + # build "${BUILD_GCC1}" && (yes "" | execute make ${MAKEFLAGS};) + build "${BUILD_GCC1}" && execute make ${MAKEFLAGS} - # Install - build "${BUILD_GCC1}" && execute make install - build "${BUILD_GCC1}" && execute make DEVEL_PREFIX="${INSTALL_NATIVE_BASE}/usr/${TARGET}/" install + # Install + build "${BUILD_GCC1}" && execute make install + build "${BUILD_GCC1}" && execute make DEVEL_PREFIX="${INSTALL_NATIVE_BASE}/usr/${TARGET}/" install - case "${TARGET}" in - vax-*) - pushd "${UCLIBC_SRC}/libm-vax" - execute make TARGET="${TARGET}-" libm.a - execute cp "${INSTALL_BASE}/usr/${TARGET}/lib/lib/libm.a" \ - "${INSTALL_BASE}/usr/${TARGET}/lib/lib/libm-uClibc.a" - execute cp libm.a "${INSTALL_BASE}/usr/${TARGET}/lib/lib/" - popd - ;; - *) - :;; - esac + case "${TARGET}" in + vax-*) + pushd "${UCLIBC_SRC}/libm-vax" + execute make TARGET="${TARGET}-" libm.a + execute cp "${INSTALL_BASE}/usr/${TARGET}/lib/lib/libm.a" \ + "${INSTALL_BASE}/usr/${TARGET}/lib/lib/libm-uClibc.a" + execute cp libm.a "${INSTALL_BASE}/usr/${TARGET}/lib/lib/" + popd + ;; + *) + :;; + esac - # Fixup. Until LINK_SPEC is correct for GCC, we need to fiddle - # with library and header file location... - pushd "${INSTALL_BASE}/usr/${TARGET}/lib" - ln -s lib/* . - popd - pushd "${INSTALL_BASE}/usr/${TARGET}" - ln -s lib/include . + # Fixup. Until LINK_SPEC is correct for GCC, we need to fiddle + # with library and header file location... + pushd "${INSTALL_BASE}/usr/${TARGET}/lib" + ln -s lib/* . + popd + pushd "${INSTALL_BASE}/usr/${TARGET}" + ln -s lib/include . + popd popd -popd +fi # |
From: Jan-Benedict G. <jb...@us...> - 2005-12-16 11:22:55
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3282 Modified Files: vax_toolchain_config Log Message: - Config for bixie. Index: vax_toolchain_config =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/vax_toolchain_config,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- vax_toolchain_config 5 Jun 2005 16:18:58 -0000 1.7 +++ vax_toolchain_config 16 Dec 2005 11:22:27 -0000 1.8 @@ -107,6 +107,20 @@ # # Settings for: # +# Jan-Benedict Glaw <jb...@lu...> on bixie +# +if [ `whoami` = jbglaw -a `hostname` = bixie ]; then + HACKERY_ROOT=/home/jbglaw/vax + export UPSTREAM_SANDBOXES_PATH="$HACKERY_ROOT/checkout" + export UPSTREAM_PATCHES_PATH="$HACKERY_ROOT/upstream-patches" + export VAX_PATCHES_PATH="${UPSTREAM_SANDBOXES_PATH}/toolchain/patches" + export BUILD_BASE_DIR="$HACKERY_ROOT/buildplace" + export VAX_TOOLCHAIN_SCRIPTS="${UPSTREAM_SANDBOXES_PATH}/toolchain/scripts" +fi + +# +# Settings for: +# # kenn@excalibur # if [ `whoami` = kenn -a `hostname` = excalibur.research.wombat.ie ]; then |
From: Jan-Benedict G. <jb...@us...> - 2005-12-15 18:03:20
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5630 Modified Files: glibc-000000-experimental.patch Log Message: jbglaw@d2:~/vax-linux/scm/test-for-glibc/build/glibc$ find . -type f -name '*.o' -print | wc -l 146 Index: glibc-000000-experimental.patch =================================================================== RCS file: /cvsroot/linux-vax/toolchain/patches/glibc-000000-experimental.patch,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- glibc-000000-experimental.patch 14 Dec 2005 20:34:45 -0000 1.3 +++ glibc-000000-experimental.patch 15 Dec 2005 18:03:11 -0000 1.4 @@ -1,6 +1,6 @@ diff -Nurp glibc-clean/include/libc-symbols.h glibc/include/libc-symbols.h --- glibc-clean/include/libc-symbols.h 2005-11-08 13:22:13.000000000 +0100 -+++ glibc/include/libc-symbols.h 2005-12-14 20:30:22.000000000 +0100 ++++ glibc/include/libc-symbols.h 2005-12-15 08:27:25.000000000 +0100 @@ -236,7 +236,9 @@ # ifdef HAVE_SECTION_QUOTES # define __sec_comment "\"\n\t#\"" @@ -14,7 +14,7 @@ __make_section_unallocated (".gnu.warning." #symbol) \ diff -Nurp glibc-clean/linuxthreads/sysdeps/vax/pspinlock.c glibc/linuxthreads/sysdeps/vax/pspinlock.c --- glibc-clean/linuxthreads/sysdeps/vax/pspinlock.c 1970-01-01 01:00:00.000000000 +0100 [...1049 lines suppressed...] +--- glibc-clean/sysdeps/vax/setjmp.c 2002-07-06 08:36:02.000000000 +0200 ++++ glibc/sysdeps/vax/setjmp.c 2005-12-15 12:30:02.000000000 +0100 +@@ -54,8 +54,8 @@ int + __sigsetjmp (jmp_buf env, int savemask) + { + /* Save our caller's FP and PC. */ +- asm ("movl 12(fp), %0" : "=g" (env[0].__jmpbuf[0].__fp)); +- asm ("movl 16(fp), %0" : "=g" (env[0].__jmpbuf[0].__pc)); ++ asm ("movl 12(%%fp), %0" : "=g" (env[0].__jmpbuf[0].__fp)); ++ asm ("movl 16(%%fp), %0" : "=g" (env[0].__jmpbuf[0].__pc)); + + /* Save the signal mask if requested. */ + return __sigjmp_save (env, savemask); diff -Nurp glibc-clean/sysdeps/vax/sysdep.h glibc/sysdeps/vax/sysdep.h --- glibc-clean/sysdeps/vax/sysdep.h 1970-01-01 01:00:00.000000000 +0100 -+++ glibc/sysdeps/vax/sysdep.h 2005-12-13 22:55:29.000000000 +0100 ++++ glibc/sysdeps/vax/sysdep.h 2005-12-15 08:27:25.000000000 +0100 @@ -0,0 +1,80 @@ +/* Assembler macros for VAX. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. |
From: Jan-Benedict G. <jb...@us...> - 2005-12-15 16:52:25
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19920 Added Files: gcc-000008-fix-r108480.patch Log Message: - cc0 ports seem to get too little testing :-/ --- NEW FILE: gcc-000008-fix-r108480.patch --- --- gcc/gcc/struct-equiv.c~orig 2005-12-15 12:50:30.000000000 +0100 +++ gcc/gcc/struct-equiv.c 2005-12-15 12:51:33.000000000 +0100 @@ -249,7 +249,7 @@ struct_equiv_improve_checkpoint (struct struct equiv_info *info) { #ifdef HAVE_cc0 - if (reg_mentioned_p (cc0_rtx, info->x_start) && !sets_cc0_p (info->x_start)) + if (reg_mentioned_p (cc0_rtx, info->cur.x_start) && !sets_cc0_p (info->cur.x_start)) return; #endif if (info->cur.input_count >= IMPOSSIBLE_MOVE_FACTOR) |
From: Jan-Benedict G. <jb...@us...> - 2005-12-15 16:51:03
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19766 Added Files: uclibc-000028-hide-brk.patch Log Message: - Hide brk and set an alias. --- NEW FILE: uclibc-000028-hide-brk.patch --- diff -Nurp src-uclibc-fresh/libc/sysdeps/linux/vax/brk.c src-uclibc-hacked/libc/sysdeps/linux/vax/brk.c --- src-uclibc-fresh/libc/sysdeps/linux/vax/brk.c 2005-12-15 16:10:34.000000000 +0100 +++ src-uclibc-hacked/libc/sysdeps/linux/vax/brk.c 2005-12-15 16:23:18.000000000 +0100 @@ -24,21 +24,22 @@ /* This must be initialized data because commons can't have aliases. */ void *__curbrk = NULL; -int brk (void *addr) +int attribute_hidden +__brk (void *addr) { register unsigned long int result __asm__ ("%%r0"); asm ( - " pushl %%ap \n" /* Start frame */ - " pushl %2 \n" /* New top address we wish to get */ - " pushl $1 \n" /* One argument */ - " movl %%sp, %%ap \n" /* Finish frame */ - " chmk %1 \n" /* Perform the system call */ - " addl2 $8, %%sp \n" - " movl (%%sp)+, %%ap \n" - : "=r" (result) - : "0" (__NR_brk), - "g" (addr)); + " pushl %%ap \n" /* Start frame */ + " pushl %2 \n" /* New top address we wish to get */ + " pushl $1 \n" /* One argument */ + " movl %%sp, %%ap \n" /* Finish frame */ + " chmk %1 \n" /* Perform the system call */ + " addl2 $8, %%sp \n" /* Remove pushed arg */ + " movl (%%sp)+, %%ap \n" /* Get back %AP */ + : "=r" (result) + : "0" (__NR_brk), + "g" (addr)); if ((void *) result < addr) { __set_errno (ENOMEM); @@ -48,4 +49,5 @@ int brk (void *addr) return 0; } +strong_alias(__brk,brk) |
From: Jan-Benedict G. <jb...@us...> - 2005-12-14 20:34:56
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15492 Modified Files: glibc-000000-experimental.patch Log Message: - Current patch. Index: glibc-000000-experimental.patch =================================================================== RCS file: /cvsroot/linux-vax/toolchain/patches/glibc-000000-experimental.patch,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- glibc-000000-experimental.patch 14 Dec 2005 18:06:53 -0000 1.2 +++ glibc-000000-experimental.patch 14 Dec 2005 20:34:45 -0000 1.3 @@ -1,3 +1,145 @@ +diff -Nurp glibc-clean/include/libc-symbols.h glibc/include/libc-symbols.h +--- glibc-clean/include/libc-symbols.h 2005-11-08 13:22:13.000000000 +0100 ++++ glibc/include/libc-symbols.h 2005-12-14 20:30:22.000000000 +0100 +@@ -236,7 +236,9 @@ + # ifdef HAVE_SECTION_QUOTES + # define __sec_comment "\"\n\t#\"" + # else +-# define __sec_comment "\n\t#" ++/*# define __sec_comment "\n\t#" */ ++# warning "__sec_comment commented out..." ++# define __sec_comment "" + # endif + # define link_warning(symbol, msg) \ + __make_section_unallocated (".gnu.warning." #symbol) \ +diff -Nurp glibc-clean/linuxthreads/sysdeps/vax/pspinlock.c glibc/linuxthreads/sysdeps/vax/pspinlock.c +--- glibc-clean/linuxthreads/sysdeps/vax/pspinlock.c 1970-01-01 01:00:00.000000000 +0100 ++++ glibc/linuxthreads/sysdeps/vax/pspinlock.c 2005-12-14 19:42:22.000000000 +0100 +@@ -0,0 +1,70 @@ ++/* POSIX spinlock implementation. VAX version. ++ Copyright (C) 2000, 2001 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include <errno.h> ++#include <pthread.h> ++#include "internals.h" ++ ++/* FIXME: These are just dummies. I don't know why or if they're needed; ++ configury should default to these definitions. We just follow the ++ crowd here. */ ++ ++int ++__pthread_spin_lock (pthread_spinlock_t *lock) ++{ ++ while (testandset (lock) != 0) ++ /* wait */; ++ ++ return 0; ++} ++weak_alias (__pthread_spin_lock, pthread_spin_lock) ++ ++int ++__pthread_spin_trylock (pthread_spinlock_t *lock) ++{ ++ return testandset (lock) != 0? EBUSY: 0; ++} ++weak_alias (__pthread_spin_trylock, pthread_spin_trylock) ++ ++int ++__pthread_spin_unlock (pthread_spinlock_t *lock) ++{ ++ return *lock = 0; ++} ++weak_alias (__pthread_spin_unlock, pthread_spin_unlock) ++ ++int ++__pthread_spin_init (pthread_spinlock_t *lock, int pshared) ++{ ++ /* We can ignore the `pshared' parameter. Since we are busy-waiting ++ all processes which can access the memory location `lock' points ++ to can use the spinlock. */ ++ return *lock = 0; ++} ++weak_alias (__pthread_spin_init, pthread_spin_init) ++ ++ ++int ++__pthread_spin_destroy (pthread_spinlock_t *lock) ++{ ++ /* Nothing to do. */ ++ return 0; ++} ++weak_alias (__pthread_spin_destroy, pthread_spin_destroy) ++ +diff -Nurp glibc-clean/linuxthreads/sysdeps/vax/pt-machine.h glibc/linuxthreads/sysdeps/vax/pt-machine.h +--- glibc-clean/linuxthreads/sysdeps/vax/pt-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ glibc/linuxthreads/sysdeps/vax/pt-machine.h 2005-12-14 19:43:54.000000000 +0100 +@@ -0,0 +1,50 @@ ++/* Machine-dependent pthreads configuration and inline functions. ++ VAX version. ++ Copyright (C) 1996, 1998 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David Airlie (airlied at linux.ie) ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, write to the Free Software Foundation, Inc., ++ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++#ifndef PT_EI ++# define PT_EI extern inline ++#endif ++ ++ ++/* Spinlock implementation; required. */ ++PT_EI long int ++testandset (int *spinlock) ++{ ++ char ret; ++ ++ __asm__ __volatile__ ( ++ " movl $1, %%r0 \n" ++ " bbssi $0, (%1), 1f \n" ++ " clrl %%r0 \n" ++ "1: movl %%r0, %0 \n" ++ : "=r"(ret) ++ : "r"(spinlock) ++ : "r0"); ++ ++ return ret; ++} ++ ++ ++/* Get some notion of the current stack. Need not be exactly the top ++ of the stack, just something somewhere in the current frame. */ ++#define CURRENT_STACK_FRAME stack_pointer ++register char *stack_pointer __asm__ ("sp"); ++ diff -Nurp glibc-clean/sysdeps/generic/ldsodefs.h glibc/sysdeps/generic/ldsodefs.h --- glibc-clean/sysdeps/generic/ldsodefs.h 2005-11-22 22:30:14.000000000 +0100 +++ glibc/sysdeps/generic/ldsodefs.h 2005-12-12 21:01:54.000000000 +0100 @@ -179,6 +321,93 @@ +# define FNONBLOCK O_NONBLOCK +# define FNDELAY O_NDELAY +#endif /* Use BSD. */ +diff -Nurp glibc-clean/sysdeps/unix/sysv/linux/vax/sys/ucontext.h glibc/sysdeps/unix/sysv/linux/vax/sys/ucontext.h +--- glibc-clean/sysdeps/unix/sysv/linux/vax/sys/ucontext.h 1970-01-01 01:00:00.000000000 +0100 ++++ glibc/sysdeps/unix/sysv/linux/vax/sys/ucontext.h 2005-12-14 19:51:00.000000000 +0100 +@@ -0,0 +1,83 @@ ++/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* Don't rely on this, the interface is currently messed up and may need to ++ be broken to be fixed. */ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include <features.h> ++#include <signal.h> ++ ++/* We need the signal context definitions even if they are not used ++ included in <signal.h>. */ ++#include <bits/sigcontext.h> ++ ++ ++/* Type for general register. */ ++typedef unsigned long int greg_t; ++ ++/* Number of general registers. */ ++#define NGREG 16 ++/* This was 16, but there are no specific FP regs on a VAX... */ ++#define NFPREG 0 ++ ++/* Container for all general registers. */ ++/* gregset_t must be an array. The below declared array corresponds to: ++typedef struct gregset { ++ greg_t g_regs[32]; ++ greg_t g_hi; ++ greg_t g_lo; ++ greg_t g_pad[3]; ++} gregset_t; */ ++typedef greg_t gregset_t[NGREG]; ++ ++/* Container for all FPU registers. */ ++typedef struct fpregset { ++#if 0 ++ union { ++ double fp_dregs[16]; ++ struct { ++ float _fp_fregs; ++ unsigned int _fp_pad; ++ } fp_fregs[16]; ++ } fp_r; ++ unsigned int fp_csr; ++ unsigned int fp_pad; ++#endif ++} fpregset_t; ++ ++ ++/* Context to describe whole processor state. */ ++typedef struct ++ { ++ gregset_t gregs; ++ fpregset_t fpregs; ++ } mcontext_t; ++ ++/* Userlevel context. */ ++typedef struct ucontext ++ { ++ unsigned long int uc_flags; ++ struct ucontext *uc_link; ++ stack_t uc_stack; ++ mcontext_t uc_mcontext; ++ __sigset_t uc_sigmask; ++ } ucontext_t; ++ ++#endif /* sys/ucontext.h */ diff -Nurp glibc-clean/sysdeps/unix/sysv/linux/vax/sysdep.h glibc/sysdeps/unix/sysv/linux/vax/sysdep.h --- glibc-clean/sysdeps/unix/sysv/linux/vax/sysdep.h 1970-01-01 01:00:00.000000000 +0100 +++ glibc/sysdeps/unix/sysv/linux/vax/sysdep.h 2005-12-14 18:26:24.000000000 +0100 @@ -447,6 +676,41 @@ + const char *symname); +__END_DECLS + +diff -Nurp glibc-clean/sysdeps/vax/bits/setjmp.h glibc/sysdeps/vax/bits/setjmp.h +--- glibc-clean/sysdeps/vax/bits/setjmp.h 1997-11-26 05:14:44.000000000 +0100 ++++ glibc/sysdeps/vax/bits/setjmp.h 2005-12-14 19:38:28.000000000 +0100 +@@ -1,11 +1,27 @@ +-/* Define the machine-dependent type `jmp_buf'. Vax version. */ ++/* Define the machine-dependent type `jmp_buf'. VAX version. */ + +-#ifndef _SETJMP_H ++#if !defined _SETJMP_H && !defined _PTHREAD_H + # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." + #endif + + typedef struct + { +- PTR __fp; +- PTR __pc; ++ /* VAX CPUs have 16 registers. R0..R11 are used as general purpose ++ registers (R0/R1 are used to return values, though), the rest is ++ AP/FP/SP/PC. We don't save R0 since it'll be set by longjmp(). */ ++ unsigned long _r1; ++ unsigned long _r2; ++ unsigned long _r3; ++ unsigned long _r4; ++ unsigned long _r5; ++ unsigned long _r6; ++ unsigned long _r7; ++ unsigned long _r8; ++ unsigned long _r9; ++ unsigned long _r10; ++ unsigned long _r11; ++ unsigned long _ap; ++ unsigned long _fp; ++ unsigned long _sp; ++ unsigned long _pc; + } __jmp_buf[1]; diff -Nurp glibc-clean/sysdeps/vax/dl-machine.h glibc/sysdeps/vax/dl-machine.h --- glibc-clean/sysdeps/vax/dl-machine.h 1970-01-01 01:00:00.000000000 +0100 +++ glibc/sysdeps/vax/dl-machine.h 2005-12-13 20:05:26.000000000 +0100 @@ -809,6 +1073,34 @@ +} + +#endif /* RESOLVE */ +diff -Nurp glibc-clean/sysdeps/vax/fpu/Makefile glibc/sysdeps/vax/fpu/Makefile +--- glibc-clean/sysdeps/vax/fpu/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ glibc/sysdeps/vax/fpu/Makefile 2005-12-14 20:52:27.000000000 +0100 +@@ -0,0 +1,8 @@ ++ifeq ($(subdir),math) ++ifndef math-twiddled ++ ++# Avoid twiddling in generic/Makefile. ++math-twiddled := t ++ ++endif ++endif +diff -Nurp glibc-clean/sysdeps/vax/fpu/s_isinf.c glibc/sysdeps/vax/fpu/s_isinf.c +--- glibc-clean/sysdeps/vax/fpu/s_isinf.c 1970-01-01 01:00:00.000000000 +0100 ++++ glibc/sysdeps/vax/fpu/s_isinf.c 2005-12-14 20:47:10.000000000 +0100 +@@ -0,0 +1,12 @@ ++#include "math.h" ++#include "math_private.h" ++ ++int ++__isinf (double x) ++{ ++ /* There's no \inf on VAX. */ ++ return 0; ++} ++hidden_def (__isinf) ++weak_alias (__isinf, isinf) ++ diff -Nurp glibc-clean/sysdeps/vax/Implies glibc/sysdeps/vax/Implies --- glibc-clean/sysdeps/vax/Implies 1970-01-01 01:00:00.000000000 +0100 +++ glibc/sysdeps/vax/Implies 2005-12-12 19:49:25.000000000 +0100 |
From: Jan-Benedict G. <jb...@us...> - 2005-12-14 20:13:34
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10069 Modified Files: build_toolchain.sh Log Message: - --without-fp Index: build_toolchain.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/build_toolchain.sh,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- build_toolchain.sh 14 Dec 2005 18:02:51 -0000 1.37 +++ build_toolchain.sh 14 Dec 2005 20:13:25 -0000 1.38 @@ -634,7 +634,8 @@ --with-headers=/home/jbglaw/vax-linux/scm/test-for-glibc/src/linux/include \ --disable-shared \ --enable-static \ - --enable-add-ons=nptl + --enable-add-ons=linuxthreads \ + --without-fp -nfp make fi |
From: Jan-Benedict G. <jb...@us...> - 2005-12-14 18:07:06
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9993 Modified Files: glibc-000000-experimental.patch Log Message: - Some more cut'n'pasting... Index: glibc-000000-experimental.patch =================================================================== RCS file: /cvsroot/linux-vax/toolchain/patches/glibc-000000-experimental.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- glibc-000000-experimental.patch 12 Dec 2005 21:55:00 -0000 1.1 +++ glibc-000000-experimental.patch 14 Dec 2005 18:06:53 -0000 1.2 @@ -179,6 +179,197 @@ +# define FNONBLOCK O_NONBLOCK +# define FNDELAY O_NDELAY +#endif /* Use BSD. */ +diff -Nurp glibc-clean/sysdeps/unix/sysv/linux/vax/sysdep.h glibc/sysdeps/unix/sysv/linux/vax/sysdep.h +--- glibc-clean/sysdeps/unix/sysv/linux/vax/sysdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ glibc/sysdeps/unix/sysv/linux/vax/sysdep.h 2005-12-14 18:26:24.000000000 +0100 +@@ -0,0 +1,187 @@ ++/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include "config.h" ++#include <sysdeps/vax/sysdep.h> ++#include <sysdeps/unix/sysdep.h> ++ ++#undef SYS_ify ++#define SYS_ify(syscall_name) (__NR_##syscall_name) ++ ++#undef L ++#define L(name) .L##name ++ ++/* ++ * These defines allow to access the return/error values of a syscall ++ */ ++#undef INTERNAL_SYSCALL_DECL ++#define INTERNAL_SYSCALL_DECL(err) do { } while (0) ++ ++#undef INTERNAL_SYSCALL_ERRNO ++#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) ++ ++#undef INTERNAL_SYSCALL_ERROR_P ++#define INTERNAL_SYSCALL_ERROR_P(val, err) ((unsigned int) (val) >= -4095U) ++ ++ ++ ++#ifdef __ASSEMBLER__ ++ ++/* For Linux we can use the system call table in the header file ++ /usr/include/asm/unistd.h ++ of the kernel. But these symbols do not follow the SYS_* syntax ++ so we have to redefine the `SYS_ify' macro here. */ ++#undef SYS_ify ++#define SYS_ify(syscall_name) __NR_##syscall_name ++ ++/* ELF-like local names start with `.L'. */ ++#undef L ++#define L(name) .L##name ++ ++#define MOVE(x,y) movl x, y ++ ++#define SYSCALL_ERROR_LABEL syscall_error ++ ++#undef PSEUDO ++#define PSEUDO(name, syscall_name, args) \ ++ ENTRY(name, 0x0ffc) \ ++ DO_CALL(args, syscall_name) \ ++ cmpl $-4095, %r0; \ ++ bgtru no_error; \ ++ jmp SYSCALL_ERROR_LABEL; \ ++no_error: \ ++L(pseudo_end): ++ ++#undef PSEUDO_END ++#define PSEUDO_END(name) \ ++ SYSCALL_ERROR_HANDLER \ ++ END(name) ++ ++#define SYSCALL_ERROR_HANDLER ++ ++#define DOARGS_0 pushl $0; ++#define DOARGS_1 pushl $1; ++#define DOARGS_2 pushl $2; ++#define DOARGS_3 pushl $3; ++#define DOARGS_4 pushl $4; ++#define DOARGS_5 pushl $5; ++#define DOARGS_6 pushl $6; ++ ++#define LOAD_ARGS_0 ++#define LOAD_ARGS_1 pushl 0x04(%ap); LOAD_ARGS_0 ++#define LOAD_ARGS_2 pushl 0x08(%ap); LOAD_ARGS_1 ++#define LOAD_ARGS_3 pushl 0x0c(%ap); LOAD_ARGS_2 ++#define LOAD_ARGS_4 pushl 0x10(%ap); LOAD_ARGS_3 ++#define LOAD_ARGS_5 pushl 0x14(%ap); LOAD_ARGS_4 ++#define LOAD_ARGS_6 pushl 0x18(%ap); LOAD_ARGS_5 ++ ++#define DO_CALL(args, syscall_name) \ ++ push_ap_is_missing \ ++ LOAD_ARGS_##args \ ++ DOARGS_##args \ ++ movl %sp, %ap; \ ++ chmk $SYS_ify(syscall_name); \ ++ clear_stack \ ++ pop_ap ++ ++#else /* !defined(__ASSEMBLER__) */ ++ ++#define PREPARE_FOR_SYSCALL() \ ++ __asm__ __volatile__ ("pushl %ap") ++ ++#define LOAD_ARGS_0() ++#define LOAD_ARGS_1(arg1) \ ++ __asm__ __volatile__ ("pushl %0": : "r" ((arg1))); \ ++ LOAD_ARGS_0 () ++#define LOAD_ARGS_2(arg1, arg2) \ ++ __asm__ __volatile__ ("pushl %0": : "r" ((arg2))); \ ++ LOAD_ARGS_1 ((arg1)) ++#define LOAD_ARGS_3(arg1, arg2, arg3) \ ++ __asm__ __volatile__ ("pushl %0": : "r" ((arg3))); \ ++ LOAD_ARGS_2 ((arg1), (arg2)) ++#define LOAD_ARGS_4(arg1, arg2, arg3, arg4) \ ++ __asm__ __volatile__ ("pushl %0": : "r" ((arg4))); \ ++ LOAD_ARGS_3 ((arg1), (arg2), (arg3)) ++#define LOAD_ARGS_5(arg1, arg2, arg3, arg4, arg5) \ ++ __asm__ __volatile__ ("pushl %0": : "r" ((arg5))); \ ++ LOAD_ARGS_4 ((arg1), (arg2), (arg3), (arg4)) ++#define LOAD_ARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \ ++ __asm__ __volatile__ ("pushl %0": : "r" ((arg6))); \ ++ LOAD_ARGS_5 ((arg1), (arg2), (arg3), (arg4), (arg5)) ++ ++#define DO_ARGS_0 " pushl $0 \n" ++#define DO_ARGS_1 " pushl $1 \n" ++#define DO_ARGS_2 " pushl $2 \n" ++#define DO_ARGS_3 " pushl $3 \n" ++#define DO_ARGS_4 " pushl $4 \n" ++#define DO_ARGS_5 " pushl $5 \n" ++#define DO_ARGS_6 " pushl $6 \n" ++ ++#define UNDO_ARGS_0 " addl2 $4, %%sp \n" ++#define UNDO_ARGS_1 " addl2 $8, %%sp \n" ++#define UNDO_ARGS_2 " addl2 $12, %%sp \n" ++#define UNDO_ARGS_3 " addl2 $16, %%sp \n" ++#define UNDO_ARGS_4 " addl2 $20, %%sp \n" ++#define UNDO_ARGS_5 " addl2 $24, %%sp \n" ++#define UNDO_ARGS_6 " addl2 $28, %%sp \n" ++ ++#warning "Don't clobber 'memory', but the proper registers" ++ ++ ++/* Define a macro which expands inline into the wrapper code for a system ++ call. */ ++#undef INLINE_SYSCALL ++#define INLINE_SYSCALL(name, nr, args...) \ ++ ( \ ++ { \ ++ unsigned int resultvar = INTERNAL_SYSCALL (name, /**/, nr, args); \ ++ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, /**/), 0)) \ ++ { \ ++ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, /**/)); \ ++ resultvar = 0xffffffff; \ ++ } \ ++ (int) resultvar; \ ++ } \ ++ ) ++ ++#undef INTERNAL_SYSCALL ++#define INTERNAL_SYSCALL(name, err, nr, args...) \ ++ ( \ ++ { \ ++ unsigned long resultvar; \ ++ register long _sc_0 __asm__("r0") = SYS_ify (name); \ ++ \ ++ PREPARE_FOR_SYSCALL (); \ ++ LOAD_ARGS_##nr (args); \ ++ asm volatile ( \ ++ DO_ARGS_##nr \ ++ " movl %%sp, %%ap \n" \ ++ " chmk %0 \n" \ ++ UNDO_ARGS_##nr \ ++ " movl (%%sp)+, %%ap \n" \ ++ : "=r" (_sc_0) \ ++ : "0" (_sc_0) \ ++ : "memory"); \ ++ \ ++ resultvar = _sc_0; \ ++ \ ++ (int) resultvar; \ ++ } \ ++ ) ++ ++#endif diff -Nurp glibc-clean/sysdeps/vax/bits/endian.h glibc/sysdeps/vax/bits/endian.h --- glibc-clean/sysdeps/vax/bits/endian.h 1970-01-01 01:00:00.000000000 +0100 +++ glibc/sysdeps/vax/bits/endian.h 2005-12-12 19:50:57.000000000 +0100 @@ -192,8 +383,8 @@ +#define __BYTE_ORDER __LITTLE_ENDIAN diff -Nurp glibc-clean/sysdeps/vax/bits/link.h glibc/sysdeps/vax/bits/link.h --- glibc-clean/sysdeps/vax/bits/link.h 1970-01-01 01:00:00.000000000 +0100 -+++ glibc/sysdeps/vax/bits/link.h 2005-12-12 21:08:29.000000000 +0100 -@@ -0,0 +1,56 @@ ++++ glibc/sysdeps/vax/bits/link.h 2005-12-13 20:26:05.000000000 +0100 +@@ -0,0 +1,62 @@ +/* Copyright (C) 2005 Free Software Foundation, Inc. + This file is part of the GNU C Library. + @@ -220,18 +411,24 @@ +/* Registers for entry into PLT on VAX. */ +typedef struct La_vax_regs +{ ++#warning "struct La_vax_regs is empty" ++#if 0 + uint32_t lr_a0; + uint32_t lr_a1; + uint32_t lr_sp; ++#endif +} La_vax_regs; + +/* Return values for calls from PLT on VAX. */ +typedef struct La_vax_retval +{ ++#warning "struct La_vax_regs is empty" ++#if 0 + uint32_t lrv_d0; + uint32_t lrv_d1; + uint32_t lrv_a0; + long double lrv_fp0; ++#endif +} La_vax_retval; + +__BEGIN_DECLS @@ -252,74 +449,95 @@ + diff -Nurp glibc-clean/sysdeps/vax/dl-machine.h glibc/sysdeps/vax/dl-machine.h --- glibc-clean/sysdeps/vax/dl-machine.h 1970-01-01 01:00:00.000000000 +0100 -+++ glibc/sysdeps/vax/dl-machine.h 2005-12-12 22:42:00.000000000 +0100 -@@ -0,0 +1,293 @@ -+/* Machine-dependent ELF dynamic relocation inline functions. m68k version. -+ Copyright (C) 1996-2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ++++ glibc/sysdeps/vax/dl-machine.h 2005-12-13 20:05:26.000000000 +0100 +@@ -0,0 +1,358 @@ ++/* Machine-dependent ELF dynamic relocation inline functions. VAX version. ++ Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. ++ Library General Public License for more details. + -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, write to the Free Software Foundation, Inc., ++ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef dl_machine_h +#define dl_machine_h + -+#define ELF_MACHINE_NAME "vax" ++#define ELF_MACHINE_NAME "VAX" + +#include <sys/param.h> + ++#if 0 ++#ifdef __PIC__ ++# define CALL_FN(x) \ ++ "move.d $pc,$r9\n\t" \ ++ "add.d " #x " - .,$r9\n\t" \ ++ "jsr $r9" ++#else /* !__PIC__ */ ++# define CALL_FN(x) "jsr " #x ++#endif /* __PIC__ */ ++#endif /* 0 */ ++ ++#define CALL_FN(x) +/* Return nonzero iff ELF header is compatible with the running host. */ ++ +static inline int +elf_machine_matches_host (const Elf32_Ehdr *ehdr) +{ + return ehdr->e_machine == EM_VAX; +} + -+ +/* Return the link-time address of _DYNAMIC. Conveniently, this is the + first element of the GOT. This must be inlined in a function which + uses global data. */ ++ +static inline Elf32_Addr +elf_machine_dynamic (void) +{ -+#error "Not yet implemented -- this is from m68k" -+ register Elf32_Addr *got asm ("%a5"); ++ /* Don't just set this to an asm variable "r0" since that's not logical ++ (like, the variable is uninitialized and the register is fixed) and ++ may make GCC trip over itself doing register allocation. Yes, I'm ++ paranoid. Why do you ask? */ ++ Elf32_Addr *got; ++ ++ __asm__("\tmoval _GLOBAL_OFFSET_TABLE_, %0\n\t":"=r"(got)); + return *got; ++ +} + ++/* Return the run-time load address of the shared object. */ + -+/* Return the run-time load address of the shared object. */ +static inline Elf32_Addr +elf_machine_load_address (void) +{ -+#error "Not yet implemented -- this is from m68k" -+ Elf32_Addr addr; -+ asm ("lea _dl_start(%%pc), %0\n\t" -+ "sub.l _dl_start@GOT.w(%%a5), %0" -+ : "=a" (addr)); -+ return addr; -+} ++ unsigned long addr, link_addr; ++ unsigned long *got; + ++ /* subtract got dynamic from real dynamic to get load_address */ ++ __asm__("\tmoval _GLOBAL_OFFSET_TABLE_, %0\n\t":"=r"(got)); ++ link_addr = *got; ++ ++ __asm__("\tmoval _DYNAMIC, %0\n\t":"=r"(addr)); ++ ++ return addr-link_addr; ++} + +/* Set up the loaded object described by L so its unrelocated PLT + entries will jump to the on-demand fixup code in dl-runtime.c. */ + -+static inline int __attribute__ ((always_inline)) ++static inline int +elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) +{ -+#error "Not yet implemented -- this is from m68k" + Elf32_Addr *got; + extern void _dl_runtime_resolve (Elf32_Word); + extern void _dl_runtime_profile (Elf32_Word); @@ -340,16 +558,15 @@ + to intercept the calls to collect information. In this case we + don't store the address in the GOT so that all future calls also + end in this function. */ -+ if (profile) ++ if (__builtin_expect (profile, 0)) + { + got[2] = (Elf32_Addr) &_dl_runtime_profile; + -+ if (GLRO(dl_profile) != NULL -+ && _dl_name_match_p (GLRO(dl_profile), l)) ++ if (_dl_name_match_p (_dl_profile, l)) + { + /* This is the object we are looking for. Say that we really + want profiling and the timers are started. */ -+ GL(dl_profile_map) = l; ++ _dl_profile_map = l; + } + } + else @@ -361,9 +578,48 @@ + return lazy; +} + -+#define ELF_MACHINE_RUNTIME_FIXUP_ARGS long int save_a0, long int save_a1 ++/* This code is used in dl-runtime.c to call the `fixup' function ++ and then redirect to the address it returns. ++ ++ We get here with the offset into the relocation table pushed on stack, ++ and the link map in MOF. */ ++#define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \ ++asm( ".text\n\ ++ .globl " #tramp_name "\n\t \ ++ .type " #tramp_name ", @function\n\t \ ++" #tramp_name ": \n\t \ ++ pushr $0x3ffc\n\ ++ movl 48(%sp), %r0\n\ ++ movl 52(%sp), %r1\n\ ++ pushl (%r1) ++ pushl %r0 ++ calls $2, " #fixup_name "\n\ ++ movl %r0, 52(%sp)\n\ ++ bicw3 6(%fp), (%r0), %r1\n\ ++ popr $0x3ffc\n\ ++ bneq 4f\n\ ++ addl2 $4, %sp\n\ ++ addl2 $2, (%sp)\n\ ++ rsb\n\ ++4: addl2 $8, %sp\n\ ++ callg (%ap), (%r0)\n\ ++ ret\n\ ++ .size " #tramp_name ", . - " #tramp_name "\n\ ++ .previous\n\ ++"); + + ++#ifndef PROF ++#define ELF_MACHINE_RUNTIME_TRAMPOLINE \ ++ TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup) \ ++ TRAMPOLINE_TEMPLATE (_dl_runtime_profile, profile_fixup); ++#else ++#define ELF_MACHINE_RUNTIME_TRAMPOLINE \ ++ TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup) \ ++ asm( ".globl _dl_runtime_profile\n" \ ++ ".set _dl_runtime_profile, _dl_runtime_resolve"); ++#endif ++ +/* Mask identifying addresses reserved for the user program, + where the dynamic linker should not map anything. */ +#define ELF_MACHINE_USER_ADDRESS_MASK 0x80000000UL @@ -373,62 +629,64 @@ + its return value is the user program's entry point. */ + +#define RTLD_START asm ("\ -+ .text\n\ -+ .globl _start\n\ -+ .type _start,@function\n\ ++ .text\n\ ++ .globl _start\n\ +_start:\n\ -+ move.l %sp, -(%sp)\n\ -+ jbsr _dl_start\n\ -+ addq.l #4, %sp\n\ -+ /* FALLTHRU */\n\ -+\n\ -+ .globl _dl_start_user\n\ -+ .type _dl_start_user,@function\n\ ++ .word 0x0101\n\ ++ pushl %sp\n\ ++ calls $1,_dl_start\n\ ++ .globl _dl_start_user\n\ ++ .type _dl_start_user,@function +_dl_start_user:\n\ -+ | Save the user entry point address in %a4.\n\ -+ move.l %d0, %a4\n\ -+ | See if we were run as a command with the executable file\n\ -+ | name as an extra leading argument.\n\ -+ move.l _dl_skip_args(%pc), %d0\n\ -+ | Pop the original argument count\n\ -+ move.l (%sp)+, %d1\n\ -+ | Subtract _dl_skip_args from it.\n\ -+ sub.l %d0, %d1\n\ -+ | Adjust the stack pointer to skip _dl_skip_args words.\n\ -+ lea (%sp, %d0*4), %sp\n\ -+ | Push back the modified argument count.\n\ -+ move.l %d1, -(%sp)\n\ -+ # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\ -+ pea 8(%sp, %d1*4)\n\ -+ pea 8(%sp)\n\ -+ move.l %d1, -(%sp)\n\ -+ move.l _rtld_local(%pc), -(%sp)\n\ -+ jbsr _dl_init_internal@PLTPC\n\ -+ addq.l #8, %sp\n\ -+ addq.l #8, %sp\n\ -+ | Pass our finalizer function to the user in %a1.\n\ -+ lea _dl_fini(%pc), %a1\n\ -+ | Initialize %fp with the stack pointer.\n\ -+ move.l %sp, %fp\n\ -+ | Jump to the user's entry point.\n\ -+ jmp (%a4)\n\ -+ .size _dl_start_user, . - _dl_start_user\n\ -+ .previous"); ++ # save the user entry point address in r6.\n\ ++ movl %r0, %r6\n\ ++ # store the highest stack address \n\ ++ moval __libc_stack_end, %r0\n\ ++ movl %sp, (%r0)\n\ ++ # see if we were run as a command with the executable file\n\ ++ moval _dl_skip_args, %r0\n\ ++ movl (%r0), %r0\n\ ++ # pop the original argument count\n\ ++ movl (%sp)+, %r1\n\ ++ ashl $2, %r0, %r2\n\ ++ addl2 %r2, %sp\n\ ++ subl2 %r0, %r1 ++ pushl %r1\n\ ++ pushal _dl_loaded\n\ ++ calls $4, _dl_init\n\ ++ moval _dl_fini, %r0\n\ ++ jmp (%r6)\n\ ++ .size _dl_start_user, . - _dl_start_user\n \ ++ .previous"); + -+/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so -+ PLT entries should not be allowed to define the value. -+ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one -+ of the main executable's symbols, as for a COPY reloc. */ -+#define elf_machine_type_class(type) \ -+ ((((type) == R_68K_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \ -+ | (((type) == R_68K_COPY) * ELF_RTYPE_CLASS_COPY)) ++/* Nonzero iff TYPE describes a relocation that should ++ skip the executable when looking up the symbol value. */ ++#define elf_machine_lookup_noexec_p(type) ((type) == R_VAX_COPY) ++ ++/* Nonzero iff TYPE describes relocation of a PLT entry, so ++ PLT entries should not be allowed to define the value. */ ++#define elf_machine_lookup_noplt_p(type) ((type) == R_VAX_JMP_SLOT) + +/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */ -+#define ELF_MACHINE_JMP_SLOT R_68K_JMP_SLOT ++#define ELF_MACHINE_JMP_SLOT R_VAX_JMP_SLOT + -+/* The m68k never uses Elf32_Rel relocations. */ ++/* CRIS never uses Elf32_Rel relocations. */ +#define ELF_MACHINE_NO_REL 1 + ++/* We define an initialization functions. This is called very early in ++ _dl_sysdep_start. */ ++#define DL_PLATFORM_INIT dl_platform_init () ++ ++extern const char *_dl_platform; ++ ++static inline void __attribute__ ((unused)) ++dl_platform_init (void) ++{ ++ if (_dl_platform != NULL && *_dl_platform == '\0') ++ /* Avoid an empty string which would disturb us. */ ++ _dl_platform = NULL; ++} ++ +static inline Elf32_Addr +elf_machine_fixup_plt (struct link_map *map, lookup_t t, + const Elf32_Rela *reloc, @@ -437,118 +695,206 @@ + return *reloc_addr = value; +} + -+/* Return the final value of a plt relocation. On the m68k the JMP_SLOT -+ relocation ignores the addend. */ ++/* Return the final value of a plt relocation. */ +static inline Elf32_Addr +elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, + Elf32_Addr value) +{ -+ return value; ++ return value + reloc->r_addend; +} + -+/* Names of the architecture-specific auditing callback functions. */ -+#define ARCH_LA_PLTENTER vax_gnu_pltenter -+#define ARCH_LA_PLTEXIT vax_gnu_pltexit -+ +#endif /* !dl_machine_h */ + -+#ifdef RESOLVE_MAP ++#ifdef RESOLVE + +/* Perform the relocation specified by RELOC and SYM (which is fully resolved). + MAP is the object containing the reloc. */ + -+auto inline void __attribute__ ((unused, always_inline)) ++static inline void +elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, + const Elf32_Sym *sym, const struct r_found_version *version, -+ void *const reloc_addr_arg) ++ Elf32_Addr *const reloc_addr) +{ -+ Elf32_Addr *const reloc_addr = reloc_addr_arg; -+ const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); ++#ifndef RTLD_BOOTSTRAP ++ /* This is defined in rtld.c, but nowhere in the static libc.a; make the ++ reference weak so static programs can still link. This declaration ++ cannot be done when compiling rtld.c (i.e. #ifdef RTLD_BOOTSTRAP) ++ because rtld.c contains the common defn for _dl_rtld_map, which is ++ incompatible with a weak decl in the same file. */ ++ weak_extern (_dl_rtld_map); ++#endif + -+ if (__builtin_expect (r_type == R_68K_RELATIVE, 0)) -+ *reloc_addr = map->l_addr + reloc->r_addend; ++ if (ELF32_R_TYPE (reloc->r_info) == R_VAX_RELATIVE) ++ { ++#ifndef RTLD_BOOTSTRAP ++ if (map != &_dl_rtld_map) /* Already done in rtld itself. */ ++#endif ++ *reloc_addr = map->l_addr + reloc->r_addend; ++ } + else + { ++#ifndef RTLD_BOOTSTRAP + const Elf32_Sym *const refsym = sym; -+ struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type); -+ Elf32_Addr value = sym == NULL ? 0 : sym_map->l_addr + sym->st_value; ++#endif ++ Elf32_Addr value; ++ if (sym->st_shndx != SHN_UNDEF && ++ ELF32_ST_BIND (sym->st_info) == STB_LOCAL) ++ value = map->l_addr; ++ else ++ { ++ value = RESOLVE (&sym, version, ELF32_R_TYPE (reloc->r_info)); ++ if (sym) ++ value += sym->st_value; ++ } ++ value += reloc->r_addend; /* Assume copy relocs have zero addend. */ + -+ switch (r_type) ++ switch (ELF32_R_TYPE (reloc->r_info)) + { -+ case R_68K_COPY: ++#ifndef RTLD_BOOTSTRAP ++ case R_VAX_COPY: + if (sym == NULL) + /* This can happen in trace mode if an object could not be + found. */ + break; + if (sym->st_size > refsym->st_size -+ || (sym->st_size < refsym->st_size && GLRO(dl_verbose))) ++ || (_dl_verbose && sym->st_size < refsym->st_size)) + { ++ extern char **_dl_argv; + const char *strtab; + + strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]); -+ _dl_error_printf ("\ -+%s: Symbol `%s' has different size in shared object, consider re-linking\n", -+ rtld_progname ?: "<program name unknown>", ++ _dl_error_printf ("%s: Symbol `%s' has different size in shared object, consider re-linking\n", ++ _dl_argv[0] ?: "<program name unknown>", + strtab + refsym->st_name); + } -+ memcpy (reloc_addr_arg, (void *) value, -+ MIN (sym->st_size, refsym->st_size)); ++ memcpy (reloc_addr, (void *) value, MIN (sym->st_size, ++ refsym->st_size)); + break; -+ case R_68K_GLOB_DAT: -+ case R_68K_JMP_SLOT: ++ ++ case R_VAX_32: ++#endif ++ case R_VAX_GLOB_DAT: ++ case R_VAX_JMP_SLOT: + *reloc_addr = value; + break; -+ case R_68K_8: -+ *(char *) reloc_addr = value + reloc->r_addend; -+ break; -+ case R_68K_16: -+ *(short *) reloc_addr = value + reloc->r_addend; -+ break; -+ case R_68K_32: -+ *reloc_addr = value + reloc->r_addend; -+ break; -+ case R_68K_PC8: -+ *(char *) reloc_addr -+ = value + reloc->r_addend - (Elf32_Addr) reloc_addr; -+ break; -+ case R_68K_PC16: -+ *(short *) reloc_addr -+ = value + reloc->r_addend - (Elf32_Addr) reloc_addr; ++#ifndef RTLD_BOOTSTRAP ++ case R_VAX_8: ++ *(char *) reloc_addr = value; + break; -+ case R_68K_PC32: -+ *reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr; ++ case R_VAX_16: ++ *(short *) reloc_addr = value; + break; -+ case R_68K_NONE: /* Alright, Wilbur. */ ++#endif ++ case R_VAX_NONE: + break; ++#if !defined RTLD_BOOTSTRAP || defined _NDEBUG + default: -+ _dl_reloc_bad_type (map, r_type, 0); ++ _dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 0); + break; ++#endif + } + } +} + -+auto inline void __attribute__ ((unused, always_inline)) -+elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, -+ void *const reloc_addr_arg) -+{ -+ Elf32_Addr *const reloc_addr = reloc_addr_arg; -+ *reloc_addr = l_addr + reloc->r_addend; -+} -+ -+auto inline void __attribute__ ((unused, always_inline)) ++static inline void +elf_machine_lazy_rel (struct link_map *map, + Elf32_Addr l_addr, const Elf32_Rela *reloc) +{ + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); -+ if (ELF32_R_TYPE (reloc->r_info) == R_68K_JMP_SLOT) ++ if (__builtin_expect (ELF32_R_TYPE (reloc->r_info), R_VAX_JMP_SLOT) ++ == R_VAX_JMP_SLOT) + *reloc_addr += l_addr; + else + _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1); +} + -+#endif /* RESOLVE_MAP */ ++#endif /* RESOLVE */ diff -Nurp glibc-clean/sysdeps/vax/Implies glibc/sysdeps/vax/Implies --- glibc-clean/sysdeps/vax/Implies 1970-01-01 01:00:00.000000000 +0100 +++ glibc/sysdeps/vax/Implies 2005-12-12 19:49:25.000000000 +0100 @@ -0,0 +1 @@ +wordsize-32 +diff -Nurp glibc-clean/sysdeps/vax/sysdep.h glibc/sysdeps/vax/sysdep.h +--- glibc-clean/sysdeps/vax/sysdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ glibc/sysdeps/vax/sysdep.h 2005-12-13 22:55:29.000000000 +0100 +@@ -0,0 +1,80 @@ ++/* Assembler macros for VAX. ++ Copyright (C) 1997, 1998 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include <sysdeps/generic/sysdep.h> ++ ++#ifdef __ASSEMBLER__ ++ ++/* Syntactic details of assembler. */ ++ ++#ifdef HAVE_ELF ++ ++#define ALIGNARG(log2) log2 ++/* For ELF we need the `.type' directive to make shared libs work right. */ ++#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg; ++#define ASM_SIZE_DIRECTIVE(name) .size name,.-name ++ ++/* In ELF C symbols are asm symbols. */ ++#if 0 ++#undef NO_UNDERSCORES ++#define NO_UNDERSCORES ++#endif ++ ++#define PLTJMP(_x) _x##(PLT) ++ ++#else ++ ++#define ALIGNARG(log2) log2 ++#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */ ++#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */ ++ ++#define PLTJMP(_x) _x ++ ++#endif ++ ++/* Define an entry point visible from C. */ ++#define ENTRY(name,regs) \ ++ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \ ++ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) \ ++ .align ALIGNARG(4); \ ++ C_LABEL(name) \ ++ .word regs; \ ++ CALL_MCOUNT ++ ++#undef END ++#define END(name) \ ++ ASM_SIZE_DIRECTIVE(name) ++ ++/* If compiled for profiling, call `mcount' at the start of each function. */ ++#ifdef PROF ++/* FIXME -maybe*/ ++#define CALL_MCOUNT .data; 1:; .long 0; .text; moval 1b,%r0; jsb mcount; ++#else ++#define CALL_MCOUNT /* Do nothing. */ ++#endif ++ ++#ifdef NO_UNDERSCORES ++/* Since C identifiers are not normally prefixed with an underscore ++ on this system, the asm identifier `syscall_error' intrudes on the ++ C name space. Make sure we use an innocuous name. */ ++#define syscall_error __syscall_error ++#define mcount _mcount ++#endif ++ ++#endif /* __ASSEMBLER__ */ |
From: Jan-Benedict G. <jb...@us...> - 2005-12-14 18:03:10
|
Update of /cvsroot/linux-vax/toolchain/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9400 Modified Files: build_toolchain.sh Log Message: - Seems you need a thread lib (if you don't disable it), so I just start at the hard part:) Index: build_toolchain.sh =================================================================== RCS file: /cvsroot/linux-vax/toolchain/scripts/build_toolchain.sh,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- build_toolchain.sh 12 Dec 2005 21:53:17 -0000 1.36 +++ build_toolchain.sh 14 Dec 2005 18:02:51 -0000 1.37 @@ -633,7 +633,8 @@ --with-sysinclude=/home/jbglaw/vax-linux/scm/test-for-glibc/src/linux/include \ --with-headers=/home/jbglaw/vax-linux/scm/test-for-glibc/src/linux/include \ --disable-shared \ - --enable-static + --enable-static \ + --enable-add-ons=nptl make fi |
From: Jan-Benedict G. <jb...@us...> - 2005-12-13 09:43:37
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4481 Added Files: uclibc-000027-MREMAP_FIXED.patch Log Message: - Define MREMAP_FIXED. --- NEW FILE: uclibc-000027-MREMAP_FIXED.patch --- diff -Nurp src-uclibc-fresh/libc/sysdeps/linux/vax/bits/mman.h src-uclibc-hacked/libc/sysdeps/linux/vax/bits/mman.h --- src-uclibc-fresh/libc/sysdeps/linux/vax/bits/mman.h 2005-12-13 10:36:09.000000000 +0100 +++ src-uclibc-hacked/libc/sysdeps/linux/vax/bits/mman.h 2005-12-13 10:39:33.000000000 +0100 @@ -71,7 +71,8 @@ /* Flags for `mremap'. */ #ifdef __USE_GNU -# define MREMAP_MAYMOVE 1 +# define MREMAP_MAYMOVE 1 /* Mapping address may change. */ +# define MREMAP_FIXED 2 /* Fifth argument sets new address. */ #endif /* Advice to `madvise'. */ |