@@ -254,28 +254,37 @@ case "${host_os}" in
254
254
*darwin*)
255
255
AC_MSG_RESULT([ok (${host_os})])
256
256
VGCONF_OS="darwin"
257
+ AC_DEFINE([DARWIN_10_5], 100500, [DARWIN_VERS value for Mac OS X 10.5])
258
+ AC_DEFINE([DARWIN_10_6], 100600, [DARWIN_VERS value for Mac OS X 10.6])
259
+ AC_DEFINE([DARWIN_10_7], 100700, [DARWIN_VERS value for Mac OS X 10.7])
257
260
258
261
AC_MSG_CHECKING([for the kernel version])
259
262
kernel=`uname -r`
260
263
261
264
# Nb: for Darwin we set DEFAULT_SUPP here. That's because Darwin
262
265
# has only one relevant version, the OS version. The `uname` check
263
266
# is a good way to get that version (i.e. "Darwin 9.6.0" is Mac OS
264
- # X 10.5.6, and "Darwin 10.x" would presumably be Mac OS X 10.6.x
265
- # Snow Leopard and darwin10.supp), and we don't know of an macros
266
- # similar to __GLIBC__ to get that info.
267
+ # X 10.5.6, and "Darwin 10.x" is Mac OS X 10.6.x Snow Leopard),
268
+ # and we don't know of an macros similar to __GLIBC__ to get that info.
267
269
#
268
270
# XXX: `uname -r` won't do the right thing for cross-compiles, but
269
271
# that's not a problem yet.
270
272
case "${kernel}" in
271
273
9.*)
272
274
AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard])
275
+ AC_DEFINE([DARWIN_VERS], DARWIN_10_5, [Darwin / Mac OS X version])
273
276
DEFAULT_SUPP="darwin9.supp ${DEFAULT_SUPP}"
274
277
DEFAULT_SUPP="darwin9-drd.supp ${DEFAULT_SUPP}"
275
278
;;
279
+ 10.*)
280
+ AC_MSG_RESULT([Darwin 10.x (${kernel}) / Mac OS X 10.6 Snow Leopard])
281
+ AC_DEFINE([DARWIN_VERS], DARWIN_10_6, [Darwin / Mac OS X version])
282
+ DEFAULT_SUPP="darwin10.supp ${DEFAULT_SUPP}"
283
+ DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
284
+ ;;
276
285
*)
277
286
AC_MSG_RESULT([unsupported (${kernel})])
278
- AC_MSG_ERROR([Valgrind works on Darwin 9.x (Mac OS X 10.5)])
287
+ AC_MSG_ERROR([Valgrind works on Darwin 9.x and 10.x (Mac OS X 10.5 and 10.6 )])
279
288
;;
280
289
esac
281
290
;;
@@ -353,47 +362,70 @@ AC_SUBST(VGCONF_PLATFORM_SEC_CAPS)
353
362
354
363
AC_MSG_CHECKING([for a supported CPU/OS combination])
355
364
365
+ # NB. The load address for a given platform may be specified in more
366
+ # than one place, in some cases, depending on whether we're doing a biarch,
367
+ # 32-bit only or 64-bit only build. eg see case for amd64-linux below.
368
+ # Be careful to give consistent values in all subcases. Also, all four
369
+ # valt_load_addres_{pri,sec}_{norml,inner} values must always be set,
370
+ # even if it is to "0xUNSET".
371
+ #
356
372
case "$ARCH_MAX-$VGCONF_OS" in
357
373
x86-linux)
358
374
VGCONF_ARCH_PRI="x86"
359
375
VGCONF_ARCH_SEC=""
360
376
VGCONF_PLATFORM_PRI_CAPS="X86_LINUX"
361
377
VGCONF_PLATFORM_SEC_CAPS=""
362
- valt_load_address_normal="0x38000000"
363
- valt_load_address_inner="0x28000000"
378
+ valt_load_address_pri_norml="0x38000000"
379
+ valt_load_address_pri_inner="0x28000000"
380
+ valt_load_address_sec_norml="0xUNSET"
381
+ valt_load_address_sec_inner="0xUNSET"
364
382
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
365
383
;;
366
384
amd64-linux)
385
+ valt_load_address_sec_norml="0xUNSET"
386
+ valt_load_address_sec_inner="0xUNSET"
367
387
if test x$vg_cv_only64bit = xyes; then
368
388
VGCONF_ARCH_PRI="amd64"
369
389
VGCONF_ARCH_SEC=""
370
390
VGCONF_PLATFORM_PRI_CAPS="AMD64_LINUX"
371
391
VGCONF_PLATFORM_SEC_CAPS=""
392
+ valt_load_address_pri_norml="0x38000000"
393
+ valt_load_address_pri_inner="0x28000000"
372
394
elif test x$vg_cv_only32bit = xyes; then
373
395
VGCONF_ARCH_PRI="x86"
374
396
VGCONF_ARCH_SEC=""
375
397
VGCONF_PLATFORM_PRI_CAPS="X86_LINUX"
376
398
VGCONF_PLATFORM_SEC_CAPS=""
399
+ valt_load_address_pri_norml="0x38000000"
400
+ valt_load_address_pri_inner="0x28000000"
377
401
else
378
402
VGCONF_ARCH_PRI="amd64"
379
403
VGCONF_ARCH_SEC="x86"
380
404
VGCONF_PLATFORM_PRI_CAPS="AMD64_LINUX"
381
405
VGCONF_PLATFORM_SEC_CAPS="X86_LINUX"
406
+ valt_load_address_pri_norml="0x38000000"
407
+ valt_load_address_pri_inner="0x28000000"
408
+ valt_load_address_sec_norml="0x38000000"
409
+ valt_load_address_sec_inner="0x28000000"
382
410
fi
383
- valt_load_address_normal="0x38000000"
384
- valt_load_address_inner="0x28000000"
385
411
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
386
412
;;
387
413
ppc32-linux)
388
414
VGCONF_ARCH_PRI="ppc32"
389
415
VGCONF_ARCH_SEC=""
390
416
VGCONF_PLATFORM_PRI_CAPS="PPC32_LINUX"
391
417
VGCONF_PLATFORM_SEC_CAPS=""
392
- valt_load_address_normal="0x38000000"
393
- valt_load_address_inner="0x28000000"
418
+ valt_load_address_pri_norml="0x38000000"
419
+ valt_load_address_pri_inner="0x28000000"
420
+ valt_load_address_sec_norml="0xUNSET"
421
+ valt_load_address_sec_inner="0xUNSET"
394
422
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
395
423
;;
396
424
ppc64-aix5)
425
+ valt_load_address_pri_norml="0xUNSET"
426
+ valt_load_address_pri_inner="0xUNSET"
427
+ valt_load_address_sec_norml="0xUNSET"
428
+ valt_load_address_sec_inner="0xUNSET"
397
429
if test x$vg_cv_only64bit = xyes; then
398
430
VGCONF_ARCH_PRI="ppc64"
399
431
VGCONF_ARCH_SEC=""
@@ -410,75 +442,97 @@ case "$ARCH_MAX-$VGCONF_OS" in
410
442
VGCONF_PLATFORM_PRI_CAPS="PPC64_AIX5"
411
443
VGCONF_PLATFORM_SEC_CAPS="PPC32_AIX5"
412
444
fi
413
- valt_load_address_normal="0x38000000"
414
- valt_load_address_inner="0x28000000"
415
445
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
416
446
;;
417
447
ppc64-linux)
448
+ valt_load_address_sec_norml="0xUNSET"
449
+ valt_load_address_sec_inner="0xUNSET"
418
450
if test x$vg_cv_only64bit = xyes; then
419
451
VGCONF_ARCH_PRI="ppc64"
420
452
VGCONF_ARCH_SEC=""
421
453
VGCONF_PLATFORM_PRI_CAPS="PPC64_LINUX"
422
454
VGCONF_PLATFORM_SEC_CAPS=""
455
+ valt_load_address_pri_norml="0x38000000"
456
+ valt_load_address_pri_inner="0x28000000"
423
457
elif test x$vg_cv_only32bit = xyes; then
424
458
VGCONF_ARCH_PRI="ppc32"
425
459
VGCONF_ARCH_SEC=""
426
460
VGCONF_PLATFORM_PRI_CAPS="PPC32_LINUX"
427
461
VGCONF_PLATFORM_SEC_CAPS=""
462
+ valt_load_address_pri_norml="0x38000000"
463
+ valt_load_address_pri_inner="0x28000000"
428
464
else
429
465
VGCONF_ARCH_PRI="ppc64"
430
466
VGCONF_ARCH_SEC="ppc32"
431
467
VGCONF_PLATFORM_PRI_CAPS="PPC64_LINUX"
432
468
VGCONF_PLATFORM_SEC_CAPS="PPC32_LINUX"
469
+ valt_load_address_pri_norml="0x38000000"
470
+ valt_load_address_pri_inner="0x28000000"
471
+ valt_load_address_sec_norml="0x38000000"
472
+ valt_load_address_sec_inner="0x28000000"
433
473
fi
434
- valt_load_address_normal="0x38000000"
435
- valt_load_address_inner="0x28000000"
436
474
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
437
475
;;
438
476
x86-darwin)
439
477
VGCONF_ARCH_PRI="x86"
440
478
VGCONF_ARCH_SEC=""
441
479
VGCONF_PLATFORM_PRI_CAPS="X86_DARWIN"
442
480
VGCONF_PLATFORM_SEC_CAPS=""
443
- valt_load_address_normal="0x0"
444
- valt_load_address_inner="0x0"
481
+ valt_load_address_pri_norml="0x38000000"
482
+ valt_load_address_pri_inner="0x28000000"
483
+ valt_load_address_sec_norml="0xUNSET"
484
+ valt_load_address_sec_inner="0xUNSET"
445
485
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
446
486
;;
447
487
amd64-darwin)
488
+ valt_load_address_sec_norml="0xUNSET"
489
+ valt_load_address_sec_inner="0xUNSET"
448
490
if test x$vg_cv_only64bit = xyes; then
449
491
VGCONF_ARCH_PRI="amd64"
450
492
VGCONF_ARCH_SEC=""
451
493
VGCONF_PLATFORM_PRI_CAPS="AMD64_DARWIN"
452
494
VGCONF_PLATFORM_SEC_CAPS=""
495
+ valt_load_address_pri_norml="0x138000000"
496
+ valt_load_address_pri_inner="0x128000000"
453
497
elif test x$vg_cv_only32bit = xyes; then
454
498
VGCONF_ARCH_PRI="x86"
455
499
VGCONF_ARCH_SEC=""
456
500
VGCONF_PLATFORM_PRI_CAPS="X86_DARWIN"
457
501
VGCONF_PLATFORM_SEC_CAPS=""
458
502
VGCONF_ARCH_PRI_CAPS="x86"
503
+ valt_load_address_pri_norml="0x38000000"
504
+ valt_load_address_pri_inner="0x28000000"
459
505
else
460
506
VGCONF_ARCH_PRI="amd64"
461
507
VGCONF_ARCH_SEC="x86"
462
508
VGCONF_PLATFORM_PRI_CAPS="AMD64_DARWIN"
463
509
VGCONF_PLATFORM_SEC_CAPS="X86_DARWIN"
510
+ valt_load_address_pri_norml="0x138000000"
511
+ valt_load_address_pri_inner="0x128000000"
512
+ valt_load_address_sec_norml="0x38000000"
513
+ valt_load_address_sec_inner="0x28000000"
464
514
fi
465
- valt_load_address_normal="0x0"
466
- valt_load_address_inner="0x0"
467
515
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
468
516
;;
469
517
arm-linux)
470
518
VGCONF_ARCH_PRI="arm"
471
519
VGCONF_PLATFORM_PRI_CAPS="ARM_LINUX"
472
520
VGCONF_PLATFORM_SEC_CAPS=""
473
- valt_load_address_normal="0x38000000"
474
- valt_load_address_inner="0x28000000"
521
+ valt_load_address_pri_norml="0x38000000"
522
+ valt_load_address_pri_inner="0x28000000"
523
+ valt_load_address_sec_norml="0xUNSET"
524
+ valt_load_address_sec_inner="0xUNSET"
475
525
AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
476
526
;;
477
527
*)
478
528
VGCONF_ARCH_PRI="unknown"
479
529
VGCONF_ARCH_SEC="unknown"
480
530
VGCONF_PLATFORM_PRI_CAPS="UNKNOWN"
481
531
VGCONF_PLATFORM_SEC_CAPS="UNKNOWN"
532
+ valt_load_address_pri_norml="0xUNSET"
533
+ valt_load_address_pri_inner="0xUNSET"
534
+ valt_load_address_sec_norml="0xUNSET"
535
+ valt_load_address_sec_inner="0xUNSET"
482
536
AC_MSG_RESULT([no (${ARCH_MAX}-${VGCONF_OS})])
483
537
AC_MSG_ERROR([Valgrind is platform specific. Sorry. Please consider doing a port.])
484
538
;;
@@ -564,17 +618,20 @@ AM_CONDITIONAL(VGCONF_HAVE_PLATFORM_SEC,
564
618
565
619
# Check if this should be built as an inner Valgrind, to be run within
566
620
# another Valgrind. Choose the load address accordingly.
567
- AC_SUBST(VALT_LOAD_ADDRESS)
621
+ AC_SUBST(VALT_LOAD_ADDRESS_PRI)
622
+ AC_SUBST(VALT_LOAD_ADDRESS_SEC)
568
623
AC_CACHE_CHECK([for use as an inner Valgrind], vg_cv_inner,
569
624
[AC_ARG_ENABLE(inner,
570
625
[ --enable-inner enables self-hosting],
571
626
[vg_cv_inner=$enableval],
572
627
[vg_cv_inner=no])])
573
628
if test "$vg_cv_inner" = yes; then
574
629
AC_DEFINE([ENABLE_INNER], 1, [configured to run as an inner Valgrind])
575
- VALT_LOAD_ADDRESS=$valt_load_address_inner
630
+ VALT_LOAD_ADDRESS_PRI=$valt_load_address_pri_inner
631
+ VALT_LOAD_ADDRESS_SEC=$valt_load_address_sec_inner
576
632
else
577
- VALT_LOAD_ADDRESS=$valt_load_address_normal
633
+ VALT_LOAD_ADDRESS_PRI=$valt_load_address_pri_norml
634
+ VALT_LOAD_ADDRESS_SEC=$valt_load_address_sec_norml
578
635
fi
579
636
580
637
@@ -1821,6 +1878,7 @@ AC_CONFIG_FILES([
1821
1878
memcheck/tests/x86/Makefile
1822
1879
memcheck/tests/linux/Makefile
1823
1880
memcheck/tests/darwin/Makefile
1881
+ memcheck/tests/amd64-linux/Makefile
1824
1882
memcheck/tests/x86-linux/Makefile
1825
1883
memcheck/perf/Makefile
1826
1884
cachegrind/Makefile
0 commit comments