Powerpc Fixes (part 1):

- Enable builds for powerpc ISA type.
- Add DIV_ROUND_UP and roundup macros if unavailable.
- Cast 64-bit values for %lld format string to (long long) to
  quiet compile warning.
This commit is contained in:
Brian Behlendorf 2009-05-20 12:23:24 -07:00
parent fe4573928f
commit 3731931529
3 changed files with 30 additions and 7 deletions

View File

@ -39,7 +39,22 @@ extern "C" {
#define _ILP32 #define _ILP32
#endif #endif
#else /* Currently only x86_64 and i386 arches supported */ /* powerpc (ppc64) arch specific defines */
#elif defined(__powerpc) || defined(__powerpc__)
#if !defined(__powerpc)
#define __powerpc
#endif
#if !defined(__powerpc__)
#define __powerpc__
#endif
#if !defined(_LP64)
#define _LP64
#endif
#else /* Currently only x86_64, i386, and powerpc arches supported */
#error "Unsupported ISA type" #error "Unsupported ISA type"
#endif #endif

View File

@ -157,6 +157,12 @@ extern uint32_t zone_get_hostid(void *zone);
#ifndef ABS #ifndef ABS
#define ABS(a) ((a) < 0 ? -(a) : (a)) #define ABS(a) ((a) < 0 ? -(a) : (a))
#endif #endif
#ifndef DIV_ROUND_UP
#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
#endif
#ifndef roundup
#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
#endif
/* /*
* Compatibility macros/typedefs needed for Solaris -> Linux port * Compatibility macros/typedefs needed for Solaris -> Linux port

View File

@ -85,7 +85,8 @@ splat_kobj_test2(struct file *file, void *arg)
if (!buf) { if (!buf) {
rc = -ENOMEM; rc = -ENOMEM;
splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Failed to alloc " splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Failed to alloc "
"%lld bytes for tmp buffer (%d)\n", size, rc); "%lld bytes for tmp buffer (%d)\n",
(long long)size, rc);
goto out; goto out;
} }
@ -104,7 +105,8 @@ splat_kobj_test2(struct file *file, void *arg)
rc = -EFBIG; rc = -EFBIG;
splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Stat'ed size " splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Stat'ed size "
"(%lld) does not match number of bytes read " "(%lld) does not match number of bytes read "
"(%lld)\n", size, (uint64_t)strlen(buf)); "(%lld)\n", (long long)size,
(long long)strlen(buf));
goto out2; goto out2;
} }
@ -112,7 +114,7 @@ splat_kobj_test2(struct file *file, void *arg)
splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "\n%s\n", buf); splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "\n%s\n", buf);
splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Successfully stat'ed " splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Successfully stat'ed "
"and read expected number of bytes (%lld) from test " "and read expected number of bytes (%lld) from test "
"file: %s\n", size, SPLAT_KOBJ_TEST_FILE); "file: %s\n", (long long)size, SPLAT_KOBJ_TEST_FILE);
out2: out2:
kfree(buf); kfree(buf);
out: out: