Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 48 additions & 2 deletions erts/config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -1064,8 +1064,29 @@
/* Define to 1 if the system has the type 'struct ip_mreqn'. */
#undef HAVE_STRUCT_IP_MREQN

/* Define to 1 if 'assoc_id' is a member of 'struct sctp_accoc_value'. */
#undef HAVE_STRUCT_SCTP_ACCOC_VALUE_ASSOC_ID
/* Define to 1 if 'sas_assoc_id' is a member of 'struct sctp_assoc_stats'. */
#undef HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_ASSOC_ID

/* Define to 1 if 'sas_ipackets' is a member of 'struct sctp_assoc_stats'. */
#undef HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_IPACKETS

/* Define to 1 if 'sas_obs_rto_ipaddr' is a member of 'struct
sctp_assoc_stats'. */
#undef HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_OBS_RTO_IPADDR

/* Define to 1 if 'sas_opackets' is a member of 'struct sctp_assoc_stats'. */
#undef HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_OPACKETS

/* Define to 1 if 'sas_outofseqtsns' is a member of 'struct sctp_assoc_stats'.
*/
#undef HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_OUTOFSEQTSNS

/* Define to 1 if 'assoc_id' is a member of 'struct sctp_assoc_value'. */
#undef HAVE_STRUCT_SCTP_ASSOC_VALUE_ASSOC_ID

/* Define to 1 if 'sctp_assoc_reset_event' is a member of 'struct
sctp_event_subscribe'. */
#undef HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_ASSOC_RESET_EVENT

/* Define to 1 if 'sctp_authentication_event' is a member of 'struct
sctp_event_subscribe'. */
Expand All @@ -1075,18 +1096,43 @@
sctp_event_subscribe'. */
#undef HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_SENDER_DRY_EVENT

/* Define to 1 if 'sctp_stream_change_event' is a member of 'struct
sctp_event_subscribe'. */
#undef HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_STREAM_CHANGE_EVENT

/* Define to 1 if 'sctp_stream_reset_event' is a member of 'struct
sctp_event_subscribe'. */
#undef HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_STREAM_RESET_EVENT

/* Define to 1 if 'spp_dscp' is a member of 'struct sctp_paddrparams'. */
#undef HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_DSCP

/* Define to 1 if 'spp_flags' is a member of 'struct sctp_paddrparams'. */
#undef HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_FLAGS

/* Define to 1 if 'spp_pathmtu' is a member of 'struct sctp_paddrparams'. */
#undef HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_PATHMTU

/* Define to 1 if 'spp_pv6_flowlabel' is a member of 'struct
sctp_paddrparams'. */
#undef HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_PV6_FLOWLABEL

/* Define to 1 if 'spp_sackdelay' is a member of 'struct sctp_paddrparams'. */
#undef HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_SACKDELAY

/* Define to 1 if 'pdapi_seq' is a member of 'struct sctp_pdapi_event'. */
#undef HAVE_STRUCT_SCTP_PDAPI_EVENT_PDAPI_SEQ

/* Define to 1 if 'pdapi_stream' is a member of 'struct sctp_pdapi_event'. */
#undef HAVE_STRUCT_SCTP_PDAPI_EVENT_PDAPI_STREAM

/* Define to 1 if 'sre_data' is a member of 'struct sctp_remote_error'. */
#undef HAVE_STRUCT_SCTP_REMOTE_ERROR_SRE_DATA

/* Define to 1 if 'ssfe_data' is a member of 'struct sctp_send_failed_event'.
*/
#undef HAVE_STRUCT_SCTP_SEND_FAILED_EVENT_SSFE_DATA

/* Define to 1 if 'ssf_data' is a member of 'struct sctp_send_failed'. */
#undef HAVE_STRUCT_SCTP_SEND_FAILED_SSF_DATA

Expand Down
177 changes: 173 additions & 4 deletions erts/configure
Original file line number Diff line number Diff line change
Expand Up @@ -18678,16 +18678,16 @@ then :

fi

ac_fn_c_check_member "$LINENO" "struct sctp_accoc_value" "assoc_id" "ac_cv_member_struct_sctp_accoc_value_assoc_id" "#if HAVE_SYS_SOCKET_H
ac_fn_c_check_member "$LINENO" "struct sctp_assoc_value" "assoc_id" "ac_cv_member_struct_sctp_assoc_value_assoc_id" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_accoc_value_assoc_id" = xyes
if test "x$ac_cv_member_struct_sctp_assoc_value_assoc_id" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_ACCOC_VALUE_ASSOC_ID 1" >>confdefs.h
printf "%s\n" "#define HAVE_STRUCT_SCTP_ASSOC_VALUE_ASSOC_ID 1" >>confdefs.h


fi
Expand Down Expand Up @@ -19099,7 +19099,72 @@ esac
fi
printf "%s\n" "#define HAVE_DECL_SCTPS_SHUTDOWN_ACK_SENT $ac_have_decl" >>confdefs.h

ac_fn_c_check_member "$LINENO" "struct sctp_paddrparams" "spp_pathmtu" "ac_cv_member_struct_sctp_paddrparams_spp_pathmtu" "#if HAVE_SYS_SOCKET_H
ac_fn_c_check_member "$LINENO" "struct sctp_assoc_stats" "sas_assoc_id" "ac_cv_member_struct_sctp_assoc_stats_sas_assoc_id" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_assoc_stats_sas_assoc_id" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_ASSOC_ID 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_assoc_stats" "sas_obs_rto_ipaddr" "ac_cv_member_struct_sctp_assoc_stats_sas_obs_rto_ipaddr" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_assoc_stats_sas_obs_rto_ipaddr" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_OBS_RTO_IPADDR 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_assoc_stats" "sas_opackets" "ac_cv_member_struct_sctp_assoc_stats_sas_opackets" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_assoc_stats_sas_opackets" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_OPACKETS 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_assoc_stats" "sas_ipackets" "ac_cv_member_struct_sctp_assoc_stats_sas_ipackets" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_assoc_stats_sas_ipackets" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_IPACKETS 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_assoc_stats" "sas_outofseqtsns" "ac_cv_member_struct_sctp_assoc_stats_sas_outofseqtsns" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_assoc_stats_sas_outofseqtsns" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_ASSOC_STATS_SAS_OUTOFSEQTSNS 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_paddrparams" "spp_pathmtu" "ac_cv_member_struct_sctp_paddrparams_spp_pathmtu" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>
Expand Down Expand Up @@ -19137,6 +19202,58 @@ then :
printf "%s\n" "#define HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_FLAGS 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_paddrparams" "spp_pv6_flowlabel" "ac_cv_member_struct_sctp_paddrparams_spp_pv6_flowlabel" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_paddrparams_spp_pv6_flowlabel" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_PV6_FLOWLABEL 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_paddrparams" "spp_dscp" "ac_cv_member_struct_sctp_paddrparams_spp_dscp" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_paddrparams_spp_dscp" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_DSCP 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_pdapi_event" "pdapi_stream" "ac_cv_member_struct_sctp_pdapi_event_pdapi_stream" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_pdapi_event_pdapi_stream" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_PDAPI_EVENT_PDAPI_STREAM 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_pdapi_event" "pdapi_seq" "ac_cv_member_struct_sctp_pdapi_event_pdapi_seq" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_pdapi_event_pdapi_seq" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_PDAPI_EVENT_PDAPI_SEQ 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_remote_error" "sre_data" "ac_cv_member_struct_sctp_remote_error_sre_data" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
Expand All @@ -19163,6 +19280,19 @@ then :
printf "%s\n" "#define HAVE_STRUCT_SCTP_SEND_FAILED_SSF_DATA 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_send_failed_event" "ssfe_data" "ac_cv_member_struct_sctp_send_failed_event_ssfe_data" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_send_failed_event_ssfe_data" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_SEND_FAILED_EVENT_SSFE_DATA 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_event_subscribe" "sctp_authentication_event" "ac_cv_member_struct_sctp_event_subscribe_sctp_authentication_event" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
Expand All @@ -19189,6 +19319,45 @@ then :
printf "%s\n" "#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_SENDER_DRY_EVENT 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_event_subscribe" "sctp_stream_reset_event" "ac_cv_member_struct_sctp_event_subscribe_sctp_stream_reset_event" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_event_subscribe_sctp_stream_reset_event" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_STREAM_RESET_EVENT 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_event_subscribe" "sctp_assoc_reset_event" "ac_cv_member_struct_sctp_event_subscribe_sctp_assoc_reset_event" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_event_subscribe_sctp_assoc_reset_event" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_ASSOC_RESET_EVENT 1" >>confdefs.h


fi
ac_fn_c_check_member "$LINENO" "struct sctp_event_subscribe" "sctp_stream_change_event" "ac_cv_member_struct_sctp_event_subscribe_sctp_stream_change_event" "#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/sctp.h>

"
if test "x$ac_cv_member_struct_sctp_event_subscribe_sctp_stream_change_event" = xyes
then :

printf "%s\n" "#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_STREAM_CHANGE_EVENT 1" >>confdefs.h


fi


Expand Down
21 changes: 18 additions & 3 deletions erts/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1806,13 +1806,15 @@ case "x$enable_sctp" in
fi;;
esac

dnl Check how the members of struct sctp_send_failed_event
dnl are named: on linux prefixed by ssf_ but on freesd by ssfe_
AS_IF([test x"$ac_cv_header_netinet_sctp_h" = x"yes"],
[
AS_IF([test "x$enable_sctp" = "xlib"],
AC_CHECK_LIB(sctp, sctp_bindx))
AC_CHECK_FUNCS([sctp_bindx sctp_peeloff sctp_getladdrs sctp_freeladdrs sctp_getpaddrs sctp_freepaddrs \
sctp_connectx])
AC_CHECK_MEMBERS([struct sctp_accoc_value.assoc_id], [], [],
AC_CHECK_MEMBERS([struct sctp_assoc_value.assoc_id], [], [],
[#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
Expand All @@ -1837,13 +1839,26 @@ AS_IF([test x"$ac_cv_header_netinet_sctp_h" = x"yes"],
#endif
#include <netinet/sctp.h>
])
AC_CHECK_MEMBERS([struct sctp_paddrparams.spp_pathmtu,
AC_CHECK_MEMBERS([struct sctp_assoc_stats.sas_assoc_id,
struct sctp_assoc_stats.sas_obs_rto_ipaddr,
struct sctp_assoc_stats.sas_opackets,
struct sctp_assoc_stats.sas_ipackets,
struct sctp_assoc_stats.sas_outofseqtsns,
struct sctp_paddrparams.spp_pathmtu,
struct sctp_paddrparams.spp_sackdelay,
struct sctp_paddrparams.spp_flags,
struct sctp_paddrparams.spp_pv6_flowlabel,
struct sctp_paddrparams.spp_dscp,
struct sctp_pdapi_event.pdapi_stream,
struct sctp_pdapi_event.pdapi_seq,
struct sctp_remote_error.sre_data,
struct sctp_send_failed.ssf_data,
struct sctp_send_failed_event.ssfe_data,
struct sctp_event_subscribe.sctp_authentication_event,
struct sctp_event_subscribe.sctp_sender_dry_event], [], [],
struct sctp_event_subscribe.sctp_sender_dry_event,
struct sctp_event_subscribe.sctp_stream_reset_event,
struct sctp_event_subscribe.sctp_assoc_reset_event,
struct sctp_event_subscribe.sctp_stream_change_event], [], [],
[#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
Expand Down
16 changes: 11 additions & 5 deletions erts/emulator/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,10 @@ LIB_SUFFIX=.a
EXE_SUFFIX=
endif

ifeq ($(findstring solaris,$(TARGET)),solaris)
ESOCK_CFLAGS = -DESOCK_NON_EMPTY_IOV
endif

ifeq (@EMU_LOCK_CHECKING@,yes)
NO_INLINE_FUNCTIONS=true
endif
Expand Down Expand Up @@ -944,13 +948,13 @@ $(OBJDIR)/%.o: drivers/$(ERLANG_OSTYPE)/%.c
$(V_CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -Idrivers/$(ERLANG_OSTYPE) -I../etc/$(ERLANG_OSTYPE) -c $< -o $@

$(OBJDIR)/%.o: nifs/common/%.c
$(V_CC) $(CFLAGS) -DLIBSCTP=$(LIBSCTP) $(INCLUDES) -Inifs/common -Inifs/$(ERLANG_OSTYPE) -c $< -o $@
$(V_CC) $(CFLAGS) $(ESOCK_CFLAGS) -DLIBSCTP=$(LIBSCTP) $(INCLUDES) -Inifs/common -Inifs/$(ERLANG_OSTYPE) -c $< -o $@

$(OBJDIR)/%.o: nifs/common/%.cpp
$(V_CXX) $(CFLAGS) -DLIBSCTP=$(LIBSCTP) $(INCLUDES) -Inifs/common -Inifs/$(ERLANG_OSTYPE) -c $< -o $@
$(V_CXX) $(CFLAGS) $(ESOCK_CFLAGS) -DLIBSCTP=$(LIBSCTP) $(INCLUDES) -Inifs/common -Inifs/$(ERLANG_OSTYPE) -c $< -o $@

$(OBJDIR)/%.o: nifs/$(ERLANG_OSTYPE)/%.c
$(V_CC) $(CFLAGS) $(INCLUDES) -Inifs/common -Inifs/$(ERLANG_OSTYPE) -I../etc/$(ERLANG_OSTYPE) -c $< -o $@
$(V_CC) $(CFLAGS) $(ESOCK_CFLAGS) -DLIBSCTP=$(LIBSCTP) $(INCLUDES) -Inifs/common -Inifs/$(ERLANG_OSTYPE) -I../etc/$(ERLANG_OSTYPE) -c $< -o $@

#
# Build the beamasm sources.
Expand Down Expand Up @@ -1488,10 +1492,12 @@ COMPDB_CXXFLAGS=-MM $(filter-out -fno-tree-copyrename,$(CXXFLAGS)) $(DEP_INCLUDE
compdb:
clang -MJ $(TTF_DIR)/beam.json $(COMPDB_CFLAGS) $(BEAM_SRC) > /dev/null
clang++ -MJ $(TTF_DIR)/beam.cpp.json $(COMPDB_CXXFLAGS) $(BEAM_CPP_SRC) > /dev/null
clang -MJ $(TTF_DIR)/drv.json $(COMPDB_CFLAGS) -DLIBSCTP=$(LIBSCTP) $(DRV_COMMON_SRC) > /dev/null
clang -MJ $(TTF_DIR)/drv.json \
$(COMPDB_CFLAGS) -DLIBSCTP=$(LIBSCTP) $(DRV_COMMON_SRC) > /dev/null
clang -MJ $(TTF_DIR)/drv_$(ERLANG_OSTYPE).json \
$(COMPDB_CFLAGS) -I../etc/$(ERLANG_OSTYPE) $(DRV_OSTYPE_SRC) > /dev/null
clang -MJ $(TTF_DIR)/nif.json $(COMPDB_CFLAGS) $(NIF_COMMON_SRC) > /dev/null
clang -MJ $(TTF_DIR)/nif.json \
$(COMPDB_CFLAGS) -DLIBSCTP=$(LIBSCTP) $(NIF_COMMON_SRC) > /dev/null
clang -MJ $(TTF_DIR)/nif_$(ERLANG_OSTYPE).json \
$(COMPDB_CFLAGS) -I../etc/$(ERLANG_OSTYPE) $(NIF_OSTYPE_SRC) > /dev/null
clang -MJ $(TTF_DIR)/sys.json $(COMPDB_CFLAGS) $(SYS_SRC) > /dev/null
Expand Down
Loading