2014-12-08 KO Myung-Hun <komh78@gmail.com>
+ find_executable: port to EMX
+ * lib/progreloc.c (find_executable): Implement on EMX.
+
sched: check struct sched_param in spawn.h as well
* lib/sched.in.h: Include spawn.h on kLIBC.
* lib/sched_h.m4: Check struct sched_param in spawn.h as well.
# include <windows.h>
#endif
+#ifdef __EMX__
+# define INCL_DOS
+# include <os2.h>
+#endif
+
#include "relocatable.h"
#ifdef NO_XMALLOC
/* Shouldn't happen. */
return NULL;
return xstrdup (location);
+#elif defined __EMX__
+ PPIB ppib;
+ char location[CCHMAXPATH];
+
+ /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/619_L2H_DosGetInfoBlocksSynt.html
+ for specification of DosGetInfoBlocks(). */
+ if (DosGetInfoBlocks (NULL, &ppib))
+ return NULL;
+
+ /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/1247_L2H_DosQueryModuleNameSy.html
+ for specification of DosQueryModuleName(). */
+ if (DosQueryModuleName (ppib->pib_hmte, sizeof (location), location))
+ return NULL;
+
+ _fnslashify (location);
+
+ return xstrdup (location);
#else /* Unix */
# ifdef __linux__
/* The executable is accessible as /proc/<pid>/exe. In newer Linux