[systemd-devel] [PATCH 1/2] sd-journal: properly convert object->size on big endian

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Wed Aug 27 06:27:47 PDT 2014


On Wed, Aug 27, 2014 at 06:58:17PM +1200, Chris Tillman wrote:
> Ummm, luser here, how would I know if it was BE mode? That would stand for
> big-endian? I reckon so, as I wouldn't know how to change it. /proc/cpuinfo
> didn't mention it.
Yeah, big-endian. With PowerPC it is more complicated since it can be
switched...

> I'll try building journalctl with the patch; I think for Debian I probably
> have to actually build systemd?
In this case it is enough to do './configure && make journalctl' and use
journalctl without installation (./journalctl ...).

On Wed, Aug 27, 2014 at 10:16:43PM +1200, Chris Tillman wrote:
> OK, I tried building it with the patch. I saw it go past the journal
> folder, so I think the patch compiled OK. But it stopped with an error at
>
> src/core/socket.c:32:0
> /usr/include/powerpc-linux-gnu/sys/xattr.h:32:3:
>  error: expected identifier before numeric constant
>   XATTR_CREATE = 1, /* set value, fail if att already exists. */
>   ^
Hm, that doesn't look good. Which version are you compiling? We changed
to use sys/xattr.h fairly recently, but everything is expected to work
now. If you're compiling from git, than this seems to be a bug to be
resolved. You could try to compile an older version of systemd, before
v213-1-gd2edfae0f9, which started using sys/xattr.h. The journalctl
code hasn't changed much since v208, and since you only need
journalctl, it doesn't really matter much which version you compile.

You could try v208-stable, from
   git://git.freedesktop.org/git/systemd/systemd-stable.git --branch v208-stable
Then apply the patch(es) on top, and
   ./autogen.sh c && make journalctl
should be enough.

> The comma looks out of place, but it's in the middle of defining an enum
> (this is the first element). However there is a #define immediately
> following both the first and second elements, looks a little fishy. I tried
> moving those two #defines to after the enum definition (still inside the
> #ifndef) and rebuilding,but that didn't fix it. I still got the same error
> on rebuild. This header isn't even in your package is it? But I don't know
> how to get around it.
XATTR_CREATE is probably #defined to something.

> Oh, I also got some warnings:
>
> in .configure unrecognized options: --disable-maintainer-mode
>
> Makefile.am:35:  user target .PRECIOUS defined here ...
> /usr/share/automake-1.14/am/configure.am overrides Automake target
> '.PRECIOUS' defined here
This is a known automake bug, unlikely to be fixed.

> src/shared/hashmap.c:188:15 unused variable auxv
>
> src/journal/sd-journal.c:2604:25: in function sd_journal_enumerate_unique
> warning: format '%11u' expects argument of type 'long long unsigned int'
> but argument 8 has type 'size_t'
>   ... that one is in the log_debug statement you added, Zbigniew.
Thanks, I fixed this here. You might get a garbled print statement,
but shouldn't matter otherwise.

> Headed to bed now, perhaps I can try again in the morning if you all have
> any ideas ...
Thanks for testing.


Zbyszek


More information about the systemd-devel mailing list