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
diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
index 5e1fd47..baf51db 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;
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to