If we execute the following command: $ bitbake libxml2; bitbake gettext The compilation of gettext would fail. The reason seems that gettext tries to link with the native polluted libxml shared libraries located in /usr/lib. Anyhow, the command "bitbake libxml2 -c clean; bitbake gettext" would succeed.
Gettext does not have any dependency on libxml2 (target version) it does depend on libxml2-native version and will build it first in order to use it. If you can include log files from the compilation that would be helpful.
You seem to have gotten that turned around, I tried to build gettext without libxml2 (using -c cleansstate) and got a failure, but when I built libxml2, it succedded. gettext has a configure option --with-included-libxml which should force gettext to use the included one to ensure no dependency issues.
Further update, seems that there is also a libcroco which can cause issue if it is present or not. If its present and libxml2 is not, then the compilation will fail. There is also a --with-included-libcroco. I think the correct fix here to ensure we do not cause dependency issues it to use both --with-included-libcroco and --with-include-libxml
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=e5e6e761d15e42d94836a2153eda13bdbc4f915e There still might be an issue that needs looking into for removing the internal libraries and using the external version with glib, but right now there might be a circular dependency between glib and gettext.