From ce3fd7e72a1b101002617bd410031e65d290f56f Mon Sep 17 00:00:00 2001 From: Dan HorĂ¡k Date: Thu, 19 Jan 2012 12:42:53 +0100 Subject: journal: systemd v38 fails to build on big-endians Hi, during the builds for Fedora/s390x I've found that systemd v38 fails to build on big-endian platforms. ... make[2]: Entering directory `/root/systemd' CC src/journal/libsystemd_journal_la-sd-journal.lo src/journal/sd-journal.c: In function 'init_location': src/journal/sd-journal.c:69:22: error: incompatible types when initializing type 'long unsigned int' using type 'sd_id128_t' src/journal/sd-journal.c:69:20: error: incompatible types when assigning to type 'sd_id128_t' from type 'long unsigned int' make[2]: *** [src/journal/libsystemd_journal_la-sd-journal.lo] Error 1 I see the problem in using le64toh() on the 16 bytes boot_id structure in init_location() Please see http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=544375 for a full build log and attachment for a proposed fix. With regards Dan --- src/journal/sd-journal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index 5e1fd4773e..baf51db1a8 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -66,7 +66,7 @@ static void init_location(Location *l, JournalFile *f, Object *o) { l->seqnum_id = f->header->seqnum_id; l->realtime = le64toh(o->entry.realtime); l->monotonic = le64toh(o->entry.monotonic); - l->boot_id = le64toh(o->entry.boot_id); + l->boot_id = o->entry.boot_id; l->xor_hash = le64toh(o->entry.xor_hash); l->seqnum_set = l->realtime_set = l->monotonic_set = l->xor_hash_set = true; -- cgit v1.2.3-54-g00ecf