<div dir="ltr">When adding this compat header, I noticed that __attribute__((deprecated)), which G_DEPRECATED_FOR is based on, can't be associated with macros. Both gcc and clang associated the attribute to the next identifier found after the macro definition, not the macro itself:<div><br></div><div>#1 </div><div> G_DEPRECATED_FOR(NEW_ENUM)</div><div> #define OLD_ENUM NEW_NUM</div><div> void foo() {} // __attribute__((deprecated)) is applied to foo() instead of OLD_ENUM</div><div> foo(); // this triggers a deprecation warning</div><div><br></div><div>#2</div><div><div> G_DEPRECATED_FOR(NEW_ENUM)</div><div> #define OLD_ENUM NEW_NUM</div><div> struct bar; // clang fails to apply __attribute__((deprecated)) here and throws an ignored-attribute warning</div></div><div><div><br></div><div>It seems like only MSVC supports deprecation attribute on macro definitions via #pragma deprecated. Enumerator attribute would be the solution, but only gcc 6 or above (clang 3 or above) supports that. For example, we can use unnamed enum to define deprecated enumerators like this:<div><br></div><div> enum {</div><div> OLD_ENUM G_DEPRECATED_FOR(NEW_ENUM) = NEW_ENUM</div><div> };</div><div><br></div><div>Instead of relying on compiler support of enumerator attribute, I use a `static const int` in this patch as a workaround:</div><div><br></div><div><div> G_DEPRECATED_FOR(NEW_ENUM)</div></div><div> static const int OLD_ENUM = NEW_ENUM;<br></div><div><br></div><div>We can eventually migrate to use enumerator attribute when that is widely supported by the default toolchain. I also posted patches to fix the G_DEPRECATED_FOR annotations in libqmi and libmbim.</div><div><br></div><div><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 28, 2017 at 12:13 AM, Ben Chan <span dir="ltr"><<a href="mailto:benchan@chromium.org" target="_blank">benchan@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Those Roman numeral suffixes in MM_MODEM_BAND_EUTRAN_* were replaced<br>
with 1, 2, 3, ..., etc. This patch adds a compatibility header,<br>
ModemManager-compat.h, to alias the old MM_MODEM_BAND_EUTRAN_* values to<br>
the new values.<br>
---<br>
include/Makefile.am | 1 +<br>
include/ModemManager-compat.h | 432 ++++++++++++++++++++++++++++++<wbr>++++++++++++<br>
include/ModemManager.h | 3 +<br>
libmm-glib/Makefile.am | 1 +<br>
4 files changed, 437 insertions(+)<br>
create mode 100644 include/ModemManager-compat.h<br>
<br>
diff --git a/include/Makefile.am b/include/Makefile.am<br>
index 424b51c3..237ee6bd 100644<br>
--- a/include/Makefile.am<br>
+++ b/include/Makefile.am<br>
@@ -8,6 +8,7 @@ include_HEADERS = \<br>
ModemManager-names.h \<br>
ModemManager-enums.h \<br>
ModemManager-errors.h \<br>
+ ModemManager-compat.h \<br>
ModemManager-version.h \<br>
ModemManager.h<br>
<br>
diff --git a/include/ModemManager-compat.<wbr>h b/include/ModemManager-compat.<wbr>h<br>
new file mode 100644<br>
index 00000000..ffa366b2<br>
--- /dev/null<br>
+++ b/include/ModemManager-compat.<wbr>h<br>
@@ -0,0 +1,432 @@<br>
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */<br>
+/*<br>
+ * This program is free software; you can redistribute it and/or modify<br>
+ * it under the terms of the GNU General Public License as published by<br>
+ * the Free Software Foundation; either version 2 of the License, or<br>
+ * (at your option) any later version.<br>
+ *<br>
+ * This program is distributed in the hope that it will be useful,<br>
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+ * GNU General Public License for more details:<br>
+ *<br>
+ * Copyright (C) 2017 Google, Inc.<br>
+ */<br>
+<br>
+#ifndef _MODEMMANAGER_COMPAT_H_<br>
+#define _MODEMMANAGER_COMPAT_H_<br>
+<br>
+#if !defined (__MODEM_MANAGER_H_INSIDE__)<br>
+#error "Only <ModemManager.h> can be included directly."<br>
+#endif<br>
+<br>
+#include <glib.h><br>
+<br>
+#include <ModemManager-enums.h><br>
+<br>
+/**<br>
+ * SECTION:ModemManager-compat<br>
+ * @title: API break replacements<br>
+ *<br>
+ * These compatibility types and methods are flagged as deprecated and<br>
+ * therefore shouldn't be used in newly written code. They are provided to<br>
+ * avoid unnecessary API/ABI breaks.<br>
+ */<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_I:<br>
+ *<br>
+ * E-UTRAN band 1.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_1 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_1)<br>
+static const int MM_MODEM_BAND_EUTRAN_I = MM_MODEM_BAND_EUTRAN_1;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_II:<br>
+ *<br>
+ * E-UTRAN band 2.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_2 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_2)<br>
+static const int MM_MODEM_BAND_EUTRAN_II = MM_MODEM_BAND_EUTRAN_2;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_III:<br>
+ *<br>
+ * E-UTRAN band 3.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_3 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_3)<br>
+static const int MM_MODEM_BAND_EUTRAN_III = MM_MODEM_BAND_EUTRAN_3;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_IV:<br>
+ *<br>
+ * E-UTRAN band 4.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_4 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_4)<br>
+static const int MM_MODEM_BAND_EUTRAN_IV = MM_MODEM_BAND_EUTRAN_4;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_V:<br>
+ *<br>
+ * E-UTRAN band 5.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_5 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_5)<br>
+static const int MM_MODEM_BAND_EUTRAN_V = MM_MODEM_BAND_EUTRAN_5;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_VI:<br>
+ *<br>
+ * E-UTRAN band 6.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_6 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_6)<br>
+static const int MM_MODEM_BAND_EUTRAN_VI = MM_MODEM_BAND_EUTRAN_6;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_VII:<br>
+ *<br>
+ * E-UTRAN band 7.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_7 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_7)<br>
+static const int MM_MODEM_BAND_EUTRAN_VII = MM_MODEM_BAND_EUTRAN_7;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_VIII:<br>
+ *<br>
+ * E-UTRAN band 8.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_8 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_8)<br>
+static const int MM_MODEM_BAND_EUTRAN_VIII = MM_MODEM_BAND_EUTRAN_8;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_IX:<br>
+ *<br>
+ * E-UTRAN band 9.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_9 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_9)<br>
+static const int MM_MODEM_BAND_EUTRAN_IX = MM_MODEM_BAND_EUTRAN_9;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_X:<br>
+ *<br>
+ * E-UTRAN band 10.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_10 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_10)<br>
+static const int MM_MODEM_BAND_EUTRAN_X = MM_MODEM_BAND_EUTRAN_10;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XI:<br>
+ *<br>
+ * E-UTRAN band 11.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_11 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_11)<br>
+static const int MM_MODEM_BAND_EUTRAN_XI = MM_MODEM_BAND_EUTRAN_11;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XII:<br>
+ *<br>
+ * E-UTRAN band 12.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_12 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_12)<br>
+static const int MM_MODEM_BAND_EUTRAN_XII = MM_MODEM_BAND_EUTRAN_12;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XIII:<br>
+ *<br>
+ * E-UTRAN band 13.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_13 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_13)<br>
+static const int MM_MODEM_BAND_EUTRAN_XIII = MM_MODEM_BAND_EUTRAN_13;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XIV:<br>
+ *<br>
+ * E-UTRAN band 14.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_14 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_14)<br>
+static const int MM_MODEM_BAND_EUTRAN_XIV = MM_MODEM_BAND_EUTRAN_14;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XVII:<br>
+ *<br>
+ * E-UTRAN band 17.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_17 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_17)<br>
+static const int MM_MODEM_BAND_EUTRAN_XVII = MM_MODEM_BAND_EUTRAN_17;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XVIII:<br>
+ *<br>
+ * E-UTRAN band 18.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_18 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_18)<br>
+static const int MM_MODEM_BAND_EUTRAN_XVIII = MM_MODEM_BAND_EUTRAN_18;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XIX:<br>
+ *<br>
+ * E-UTRAN band 19.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_19 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_19)<br>
+static const int MM_MODEM_BAND_EUTRAN_XIX = MM_MODEM_BAND_EUTRAN_19;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XX:<br>
+ *<br>
+ * E-UTRAN band 20.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_20 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_20)<br>
+static const int MM_MODEM_BAND_EUTRAN_XX = MM_MODEM_BAND_EUTRAN_20;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXI:<br>
+ *<br>
+ * E-UTRAN band 21.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_21 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_21)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXI = MM_MODEM_BAND_EUTRAN_21;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXII:<br>
+ *<br>
+ * E-UTRAN band 22.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_22 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_22)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXII = MM_MODEM_BAND_EUTRAN_22;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXIII:<br>
+ *<br>
+ * E-UTRAN band 23.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_23 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_23)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXIII = MM_MODEM_BAND_EUTRAN_23;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXIV:<br>
+ *<br>
+ * E-UTRAN band 24.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_24 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_24)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXIV = MM_MODEM_BAND_EUTRAN_24;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXV:<br>
+ *<br>
+ * E-UTRAN band 25.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_25 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_25)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXV = MM_MODEM_BAND_EUTRAN_25;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXVI:<br>
+ *<br>
+ * E-UTRAN band 26.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_26 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_26)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXVI = MM_MODEM_BAND_EUTRAN_26;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXXIII:<br>
+ *<br>
+ * E-UTRAN band 33.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_33 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_33)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXXIII = MM_MODEM_BAND_EUTRAN_33;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXXIV:<br>
+ *<br>
+ * E-UTRAN band 34.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_34 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_34)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXXIV = MM_MODEM_BAND_EUTRAN_34;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXXV:<br>
+ *<br>
+ * E-UTRAN band 35.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_35 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_35)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXXV = MM_MODEM_BAND_EUTRAN_35;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXXVI:<br>
+ *<br>
+ * E-UTRAN band 36.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_36 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_36)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXXVI = MM_MODEM_BAND_EUTRAN_36;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXXVII:<br>
+ *<br>
+ * E-UTRAN band 37.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_37 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_37)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXXVII = MM_MODEM_BAND_EUTRAN_37;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXXVIII:<br>
+ *<br>
+ * E-UTRAN band 38.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_38 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_38)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXXVIII = MM_MODEM_BAND_EUTRAN_38;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XXXIX:<br>
+ *<br>
+ * E-UTRAN band 39.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_39 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_39)<br>
+static const int MM_MODEM_BAND_EUTRAN_XXXIX = MM_MODEM_BAND_EUTRAN_39;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XL:<br>
+ *<br>
+ * E-UTRAN band 40.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_40 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_40)<br>
+static const int MM_MODEM_BAND_EUTRAN_XL = MM_MODEM_BAND_EUTRAN_40;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XLI:<br>
+ *<br>
+ * E-UTRAN band 41.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_41 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_41)<br>
+static const int MM_MODEM_BAND_EUTRAN_XLI = MM_MODEM_BAND_EUTRAN_41;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XLII:<br>
+ *<br>
+ * E-UTRAN band 42.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_42 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_42)<br>
+static const int MM_MODEM_BAND_EUTRAN_XLII = MM_MODEM_BAND_EUTRAN_42;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XLIII:<br>
+ *<br>
+ * E-UTRAN band 43.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_43 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_43)<br>
+static const int MM_MODEM_BAND_EUTRAN_XLIII = MM_MODEM_BAND_EUTRAN_43;<br>
+<br>
+/**<br>
+ * MM_MODEM_BAND_EUTRAN_XLIV:<br>
+ *<br>
+ * E-UTRAN band 44.<br>
+ *<br>
+ * Since: 1.0<br>
+ * Deprecated: 1.18.0: Use #MM_MODEM_BAND_EUTRAN_44 instead.<br>
+ */<br>
+G_DEPRECATED_FOR (MM_MODEM_BAND_EUTRAN_44)<br>
+static const int MM_MODEM_BAND_EUTRAN_XLIV = MM_MODEM_BAND_EUTRAN_44;<br>
+<br>
+#endif /* _MODEMMANAGER_COMPAT_H_ */<br>
diff --git a/include/ModemManager.h b/include/ModemManager.h<br>
index 3a6eb43c..3db9a664 100644<br>
--- a/include/ModemManager.h<br>
+++ b/include/ModemManager.h<br>
@@ -37,6 +37,9 @@<br>
/* Public header with errors */<br>
#include <ModemManager-errors.h><br>
<br>
+/* Public header with compability types and methods */<br>
+#include <ModemManager-compat.h><br>
+<br>
/* Public header with version info */<br>
#include <ModemManager-version.h><br>
<br>
diff --git a/libmm-glib/Makefile.am b/libmm-glib/Makefile.am<br>
index 64bca40e..7d554ad0 100644<br>
--- a/libmm-glib/Makefile.am<br>
+++ b/libmm-glib/Makefile.am<br>
@@ -186,6 +186,7 @@ PUBLIC_H = \<br>
ModemManager-version.h<br>
ModemManager-enums.h \<br>
ModemManager-errors.h \<br>
+ ModemManager-compat.h \<br>
ModemManager.h \<br>
$(NULL)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
2.13.2.725.g09c95d1e9-goog<br>
<br>
______________________________<wbr>_________________<br>
ModemManager-devel mailing list<br>
<a href="mailto:ModemManager-devel@lists.freedesktop.org">ModemManager-devel@lists.<wbr>freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/modemmanager-<wbr>devel</a><br>
</font></span></blockquote></div><br></div>