mirror of
https://github.com/valitydev/gentoo-overlay.git
synced 2024-11-06 09:55:21 +00:00
46 lines
2.9 KiB
Diff
46 lines
2.9 KiB
Diff
|
https://github.com/erlang/otp/pull/2503
|
||
|
|
||
|
From 9fad0c9b71808458e857cbd3871cf80f46a75af1 Mon Sep 17 00:00:00 2001
|
||
|
From: Sergei Trofimovich <slyfox@gentoo.org>
|
||
|
Date: Tue, 14 Jan 2020 23:15:01 +0000
|
||
|
Subject: [PATCH] ei_portio.h: avoid ODR violation of
|
||
|
'ei_default_socket_callbacks'
|
||
|
|
||
|
Noticed as a build failure against fresh gcc-master:
|
||
|
|
||
|
```
|
||
|
LD otp/lib/erl_interface/bin/x86_64-unknown-linux-gnu/erl_call
|
||
|
ld: otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(eirecv.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: multiple definition of `ei_default_socket_callbacks'; otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(ei_connect.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: first defined here
|
||
|
ld: otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(send.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: multiple definition of `ei_default_socket_callbacks'; otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(ei_connect.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: first defined here
|
||
|
ld: otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(send_reg.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: multiple definition of `ei_default_socket_callbacks'; otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(ei_connect.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: first defined here
|
||
|
ld: otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(epmd_port.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: multiple definition of `ei_default_socket_callbacks'; otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(ei_connect.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: first defined here
|
||
|
ld: otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(ei_portio.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: multiple definition of `ei_default_socket_callbacks'; otp/lib/erl_interface/obj/x86_64-unknown-linux-gnu/libei.a(ei_connect.o):otp/lib/erl_interface/src/misc/ei_portio.h:50: first defined here
|
||
|
collect2: error: ld returned 1 exit status
|
||
|
make[3]: *** [x86_64-unknown-linux-gnu/Makefile:669: otp/lib/erl_interface/bin/x86_64-unknown-linux-gnu/erl_call] Error 1
|
||
|
```
|
||
|
|
||
|
The failure looks legitimate: `ei_default_socket_callbacks` is a
|
||
|
struct defined in 'ei_portio.h' and in 'ei_portio.c'.
|
||
|
|
||
|
The change flips 'ei_portio.h' definition to declaration.
|
||
|
|
||
|
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
||
|
---
|
||
|
lib/erl_interface/src/misc/ei_portio.h | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
--- a/lib/erl_interface/src/misc/ei_portio.h
|
||
|
+++ b/lib/erl_interface/src/misc/ei_portio.h
|
||
|
@@ -47,7 +47,7 @@ int ei_writev_fill_ctx_t__(ei_socket_callbacks *cbs, void *ctx, const struct iov
|
||
|
int ei_socket_callbacks_have_writev__(ei_socket_callbacks *cbs);
|
||
|
#endif
|
||
|
|
||
|
-ei_socket_callbacks ei_default_socket_callbacks;
|
||
|
+extern ei_socket_callbacks ei_default_socket_callbacks;
|
||
|
|
||
|
#define EI_FD_AS_CTX__(FD) \
|
||
|
((void *) (long) (FD))
|
||
|
--
|
||
|
2.25.0
|
||
|
|