On 6/8/15, Stuart Henderson <[email protected]> wrote:
> On 2015/06/08 10:51, patrick keshishian wrote:
>> lo_send is a macro that is defined in lo/lo_macros.h as:
>>
>> #define lo_send(targ, path, types...) \
>> lo_send_internal(targ, __FILE__, __LINE__, path, types, \
>> LO_MARKER_A, LO_MARKER_B)
>>
>> and the LO_MARKERS_{A,B} as:
>>
>> /* an internal value, ignored in transmission but check against LO_MARKER
>> in the
>> * argument list. Used to do primitive bounds checking */
>> # define LO_MARKER_A (void *)0xdeadbeefdeadbeefL
>> # define LO_MARKER_B (void *)0xf00baa23f00baa23L
>>
>> It seems there is your error's source on i386.
>
> This has been building without problem for ages though, the error only
> occurred in the last build, and nothing changed in the source.
audio/liblo was updated by jasper@ on June 3rd:
revision 1.7
date: 2015/06/03 07:00:29; author: jasper; state: Exp; lines: +3
-4; commitid: yqEfAjc5XyWkweUr;
update to liblo-0.28
that's where the lo/lo_macros.h header comes from.
Here is diff of that file between version 0.26 and 0.28:
--- liblo-0.26/lo/lo_macros.h Thu Mar 5 23:09:26 2009
+++ /usr/ports/pobj/liblo-0.28/liblo-0.28/lo/lo_macros.h Sun Jan 26
06:08:24 2014
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Steve Harris
+ * Copyright (C) 2014 Steve Harris et al. (see AUTHORS)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@ -36,15 +36,32 @@ extern "C" {
/* an internal value, ignored in transmission but check against
LO_MARKER in the
* argument list. Used to do primitive bounds checking */
-#define LO_MARKER_A 0xdeadbeef
-#define LO_MARKER_B 0xf00baa23
+# define LO_MARKER_A (void *)0xdeadbeefdeadbeefL
+# define LO_MARKER_B (void *)0xf00baa23f00baa23L
+
#define LO_ARGS_END LO_MARKER_A, LO_MARKER_B
#define lo_message_add_varargs(msg, types, list) \
lo_message_add_varargs_internal(msg, types, list, __FILE__, __LINE__)
-#ifdef __GNUC__
+#ifdef _MSC_VER
+#ifndef USE_ANSI_C
+#define USE_ANSI_C
+#endif
+#endif
+#if defined(USE_ANSI_C) || defined(DLL_EXPORT)
+
+/* In non-GCC compilers, there is no support for variable-argument
+ * macros, so provide "internal" vararg functions directly instead. */
+
+int lo_message_add(lo_message msg, const char *types, ...);
+int lo_send(lo_address targ, const char *path, const char *types, ...);
+int lo_send_timestamped(lo_address targ, lo_timetag ts, const char
*path, const char *types, ...);
+int lo_send_from(lo_address targ, lo_server from, lo_timetag ts,
const char *path, const char *types, ...);
+
+#else // !USE_ANSI_C
+
#define lo_message_add(msg, types...) \
lo_message_add_internal(msg, __FILE__, __LINE__, types, \
LO_MARKER_A, LO_MARKER_B)
@@ -61,17 +78,7 @@ extern "C" {
lo_send_from_internal(targ, from, __FILE__, __LINE__, ts, path, \
types, LO_MARKER_A, LO_MARKER_B)
-#else
-
-/* In non-GCC compilers, there is no support for variable-argument
- * macros, so provide "internal" vararg functions directly instead. */
-
-int lo_message_add(lo_message msg, const char *types, ...);
-int lo_send(lo_address targ, const char *path, const char *types, ...);
-int lo_send_timestamped(lo_address targ, lo_timetag ts, const char
*path, const char *types, ...);
-int lo_send_from(lo_address targ, lo_server from, lo_timetag ts,
const char *path, const char *types, ...);
-
-#endif
+#endif // USE_ANSI_C
#ifdef __cplusplus
}