#60655 closed defect (fixed)
flatbuffers: error: use of undeclared identifier 'asprintf_l'
| Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | herbygillot (Herby Gillot) |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.6.2 |
| Keywords: | mountainlion | Cc: | mascguy (Christopher Nielsen), judaew (Vadym-Valdis Yudaiev) |
| Port: | flatbuffers |
Description
flatbuffers fails to build on Mountain Lion with this error:
In file included from /opt/local/libexec/llvm-9.0/bin/../include/c++/v1/sstream:173:
In file included from /opt/local/libexec/llvm-9.0/bin/../include/c++/v1/ostream:140:
/opt/local/libexec/llvm-9.0/bin/../include/c++/v1/locale:1571:20: error: use of undeclared identifier 'asprintf_l'
__nc = __libcpp_asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, (int)__iob.precision(), __v);
^
/opt/local/libexec/llvm-9.0/bin/../include/c++/v1/__bsd_locale_defaults.h:33:61: note: expanded from macro '__libcpp_asprintf_l'
#define __libcpp_asprintf_l(...) asprintf_l(__VA_ARGS__)
^
this llvm bug report suggests defining _DARWIN_C_SOURCE is the solution.
Change History (6)
comment:1 Changed 6 years ago by kencu (Ken)
comment:2 Changed 3 years ago by mascguy (Christopher Nielsen)
| Cc: | mascguy added |
|---|
comment:3 follow-up: 4 Changed 3 years ago by mascguy (Christopher Nielsen)
| Cc: | judaew added |
|---|
Add another port to the list: abseil. We're now seeing the following, for 10.8 and earlier:
In file included from /opt/local/libexec/llvm-16/bin/../include/c++/v1/ostream:172:
/opt/local/libexec/llvm-16/bin/../include/c++/v1/locale:1627:16: error: use of undeclared identifier 'snprintf_l'; did you mean 'vswprintf_l'?
int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, "%p", __v);
^
/opt/local/libexec/llvm-16/bin/../include/c++/v1/__bsd_locale_defaults.h:32:61: note: expanded from macro '__libcpp_snprintf_l'
#define __libcpp_snprintf_l(...) snprintf_l(__VA_ARGS__)
^
/usr/include/xlocale/_wchar.h:54:5: note: 'vswprintf_l' declared here
int vswprintf_l(wchar_t * __restrict, size_t n, locale_t,
^
I'll add a separate ticket for the above. But just an FYI...
comment:4 Changed 3 years ago by mascguy (Christopher Nielsen)
Replying to mascguy:
Add another port to the list:
abseil. We're now seeing the following, for 10.8 and earlier:In file included from /opt/local/libexec/llvm-16/bin/../include/c++/v1/ostream:172: /opt/local/libexec/llvm-16/bin/../include/c++/v1/locale:1627:16: error: use of undeclared identifier 'snprintf_l'; did you mean 'vswprintf_l'? int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, "%p", __v); ^ /opt/local/libexec/llvm-16/bin/../include/c++/v1/__bsd_locale_defaults.h:32:61: note: expanded from macro '__libcpp_snprintf_l' #define __libcpp_snprintf_l(...) snprintf_l(__VA_ARGS__) ^ /usr/include/xlocale/_wchar.h:54:5: note: 'vswprintf_l' declared here int vswprintf_l(wchar_t * __restrict, size_t n, locale_t, ^
Sorry, that was for snprintf_l, albeit with the same general pattern. And also for asprintf_l:
In file included from /opt/local/libexec/llvm-16/bin/../include/c++/v1/ostream:172:
/opt/local/libexec/llvm-16/bin/../include/c++/v1/locale:3365:15: error: use of undeclared identifier 'asprintf_l'; did you mean 'vsprintf_l'?
__n = __libcpp_asprintf_l(&__bb, _LIBCPP_GET_C_LOCALE, "%.0Lf", __units);
^
/opt/local/libexec/llvm-16/bin/../include/c++/v1/__bsd_locale_defaults.h:33:61: note: expanded from macro '__libcpp_asprintf_l'
#define __libcpp_asprintf_l(...) asprintf_l(__VA_ARGS__)
^
/usr/include/xlocale/_stdio.h:45:6: note: 'vsprintf_l' declared here
int vsprintf_l(char * __restrict, locale_t, const char * __restrict, va_list)
^
comment:5 Changed 3 years ago by mascguy (Christopher Nielsen)
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Given that this port now builds fine for 10.7/10.8 - and has been updated numerous times, in the three years since this ticket was created - we can probably close this...
comment:6 Changed 7 months ago by szhorvat (Szabolcs Horvát)
I am seeing this issue while building igraph on Lion and Mountain Lion. See the build failures here:
https://ports.macports.org/port/igraph/details/
Has anyone seen the same with other ports on the same two platforms?

same thing happens now with
cmake60885.I wonder why, after all these years, this starts showing up now in two ports... coincidence?