Skip to content

Draft: FreeBSD: Avoid using ports libiconv

Since !3824 (merged), the base system iconv() behaviour is consistent with what glib expects so we no longer need to use the ports iconv. Compile the glib with -DLIBICONV_PLUG so that libiconv delegates to the base system functions.

I noticed this because glib did not compile out of the box without adding -I/usr/local/include manually. Without the manual flag the iconv() dependency check picks up /usr/include/inconv.h, but then later dependencies add /usr/local/include to the search path and compilation ends up selecting /local/include/iconv.h, but without the -liconv link flag. /usr/local/include/iconv.h redefines all symbols so that we call libiconv-prefixed symbols which then results in missing symbol errors at runtime (normally these would be caught at compile time but we have to use -Db_lundef=false due to environ being part of the main executable rather than libc.so on FreeBSD).

Merge request reports