# Makeindex warning

During \makeglossaries run I get warning:

Process started: makeglossaries "settings"

makeglossaries version 2.12 (2014-01-20) added glossary type 'main' (glg,gls,glo) makeindex -s "settings.ist" -t "settings.glg" -o "settings.gls" "settings.glo"

WARNING: Unable to fork "makeindex": Bad file descriptor Retrying without redirection. This is makeindex, version 2.15 [MiKTeX 2.9] (kpathsea + Thai support). Scanning style file C:/Users/asus/Downloads/settings.ist.............................done (29 attributes redefined, 0 ignored). Scanning input file settings.glo....done (1 entries accepted, 0 rejected). Sorting entries...done (0 comparisons). Generating output file settings.gls....done (6 lines written, 0 warnings). Output written in settings.gls. Transcript written in settings.glg.

Process exited normally

\documentclass{article}

\usepackage{glossaries}
\makeglossaries

\newglossaryentry{gloss}{
name=glossaries,
description=A package for generating glossaries in many styles
}

\begin{document}
\texttt{\gls{gloss}} is a great package!ds
\printglossaries
\end{document}


How this warning can be avoided?

What is wrong with my settings?

This isn't an error or anything wrong with your settings. You're just using an operating system that doesn't support makeglossaries's preferred method of running makeindex/xindy so it uses a platform independent approach instead. The next version of glossaries (4.04) will include a new version of makeglossaries (2.14) that will have a new -Q switch which you will be able to use to suppress the warning. (I plan to upload the new version to CTAN in the next few days, but I need to make a few modifications to the user guide first.)

makeglossaries tries to run makeindex/xindy by forking the application using the 2>&1 | piped redirection. It does this for two reasons:
1. makeindex/xindy don't put all their error messages in the transcript file. This method grabs both the messages in the standard output stream and the errors in the standard error stream so that makeglossaries can check for common errors and provide a suggested fix.
2. This is the only way for makeglossaries's -q option to work properly.
Not all operating systems support this method of running an application, so if this fails, makeglossaries falls back on a simpler way of running the application and then parses the transcript file afterwards, but it means that you won't get as many diagnostic messages if things go wrong and the -q option may not be as quiet as you might expect.
However, if the makeindex/xindy run is successful and you're not bothered about suppressing their messages, you don't need to worry about it.
I've uploaded glossaries version 4.04 to CTAN. This has the new makeglossaries version 2.14 which provides two new switches: -Q (suppresses this warning) and -k (prevents makeglossaries from trying the piped redirection method so it will only try the platform independent method). I've also added a few more diagnostic checks.