|
|
eef570b |
#! /bin/sh /usr/share/dpatch/dpatch-run
|
|
|
eef570b |
## 211-support-digital-alpha.dpatch by <kmccarty@debian.org>
|
|
|
eef570b |
##
|
|
|
eef570b |
## All lines beginning with `## DP:' are a description of the patch.
|
|
|
eef570b |
## DP: Try to also support alpha architecture in chkloc()
|
|
|
eef570b |
|
|
|
eef570b |
@DPATCH@
|
|
|
eef570b |
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c
|
|
|
eef570b |
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c 2006-09-06 20:48:39.151588934 -0400
|
|
|
eef570b |
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c 2006-09-06 20:53:30.206708584 -0400
|
|
|
eef570b |
@@ -35,13 +35,20 @@
|
|
|
eef570b |
data segments upwards. All addresses here are expected to be in
|
|
|
eef570b |
the data segment area. */
|
|
|
eef570b |
|
|
|
eef570b |
+ /* K. McCarty: On Alpha, on the other hand, I couldn't find any docs for the
|
|
|
eef570b |
+ Linux segmentation for virtual memory. Judging by a test machine
|
|
|
eef570b |
+ (escher.debian.org), the data section starts slightly above 0x120010000.
|
|
|
eef570b |
+ On the other hand the stack grows downward from 0x120000000. */
|
|
|
eef570b |
+
|
|
|
eef570b |
const unsigned long mask=0xffffffff00000000;
|
|
|
eef570b |
static unsigned long limit=0x00000000ffffffff;
|
|
|
eef570b |
unsigned long jadr=((unsigned long) iadr & mask);
|
|
|
eef570b |
-#if !defined (__ia64__)
|
|
|
eef570b |
- if ( jadr != 0x0000000000000000) {
|
|
|
eef570b |
-#else
|
|
|
eef570b |
+#if defined (__ia64__)
|
|
|
eef570b |
if ( jadr != 0x6000000000000000) {
|
|
|
eef570b |
+#elif defined (__alpha__)
|
|
|
eef570b |
+ if ( jadr != 0x0000000100000000) {
|
|
|
b7adf43 |
+#else /* amd64 or ppc64 */
|
|
|
eef570b |
+ if ( jadr != 0) {
|
|
|
eef570b |
#endif
|
|
|
24be4e6 |
fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
|
|
|
24be4e6 |
fprintf(stderr, "LOCB/LOCF: address %p exceeds the 32 bit address space\n", iadr);
|