Message ID | 65a04a7d.497ab3.3e7bef1f@gateway.sonic.net |
---|---|
State | New |
Headers | show |
Series | [1/2] migration/rdma: define htonll/ntohll only if not predefined | expand |
On Thu, Jan 11, 2024 at 01:20:17PM -0500, Nick Briggs wrote: > Solaris has #defines for htonll and ntohll which cause syntax errors > when compiling code that attempts to (re)define these functions.. > > Signed-off-by: Nick Briggs <nicholas.h.briggs@gmail.com> I left the other QGA patch for QGA maintainers, assuming this will enable solaries build for qemu itself alone. Queued this one for migration-staging. Thanks,
Thank you. Yes, with those two patches applied I have compiled qemu on Solaris 11.4 running on a SPARC-T4-1 (sun4v) system to emulate a single target: an HP PA-RISC. > On Jan 14, 2024, at 8:35 PM, Peter Xu <peterx@redhat.com> wrote: > > On Thu, Jan 11, 2024 at 01:20:17PM -0500, Nick Briggs wrote: >> Solaris has #defines for htonll and ntohll which cause syntax errors >> when compiling code that attempts to (re)define these functions.. >> >> Signed-off-by: Nick Briggs <nicholas.h.briggs@gmail.com> > > I left the other QGA patch for QGA maintainers, assuming this will enable > solaries build for qemu itself alone. > > Queued this one for migration-staging. > > Thanks, > > -- > Peter Xu >
diff --git a/migration/rdma.c b/migration/rdma.c index 94c0f871f0..a355dcea89 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -238,6 +238,7 @@ static const char *control_desc(unsigned int rdma_control) return strs[rdma_control]; } +#if !defined(htonll) static uint64_t htonll(uint64_t v) { union { uint32_t lv[2]; uint64_t llv; } u; @@ -245,13 +246,16 @@ static uint64_t htonll(uint64_t v) u.lv[1] = htonl(v & 0xFFFFFFFFULL); return u.llv; } +#endif +#if !defined(ntohll) static uint64_t ntohll(uint64_t v) { union { uint32_t lv[2]; uint64_t llv; } u; u.llv = v; return ((uint64_t)ntohl(u.lv[0]) << 32) | (uint64_t) ntohl(u.lv[1]); } +#endif static void dest_block_to_network(RDMADestBlock *db) {
Solaris has #defines for htonll and ntohll which cause syntax errors when compiling code that attempts to (re)define these functions.. Signed-off-by: Nick Briggs <nicholas.h.briggs@gmail.com> --- migration/rdma.c | 4 ++++ 1 file changed, 4 insertions(+)