diff mbox series

[1/2] migration/rdma: define htonll/ntohll only if not predefined

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

Commit Message

Nick Briggs Jan. 11, 2024, 6:20 p.m. UTC
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(+)

Comments

Peter Xu Jan. 15, 2024, 4:35 a.m. UTC | #1
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,
Nick Briggs Jan. 15, 2024, 6:46 a.m. UTC | #2
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 mbox series

Patch

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)
 {