[Patch] gio-standalone build fail with suncc because retrun value in void function

Halton Huo <[email protected]>
Newsgroups gmane.comp.gnome.vfs.general
Message-ID <1194416442.1171.35.camel@judo>
Hi Alexl,

When I try to build gio-standalone trunk code on Solaris with suncc, I
get build fail with following message:

 /ws/onnv-tools-prc/SUNWspro/SS11/bin/cc -DHAVE_CONFIG_H -I. -I.. -I..
-I.. -DGIO_MODULE_DIR=\"/export/home/halton/work/dist//lib/gio/modules\"
-D_REENTRANT -D_PTHREADS -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -DG_LOG_DOMAIN=\"GIO\"
-DG_DISABLE_DEPRECATED -DDBUS_API_SUBJECT_TO_CHANGE -g -c
glocalfileinfo.c  -KPIC -DPIC -o .libs/glocalfileinfo.o
"glocalfileinfo.c", line 975: prototype mismatch: 5 args passed, 4
expected
"glocalfileinfo.c", line 1056: prototype mismatch: 5 args passed, 4
expected

It is because getgrgid_r is differrent between Linux and Solaris.

On Solaris:
struct passwd *getpwuid_r(uid_t uid, struct passwd *pwd, char *buffer,
int  buflen);

On Linux:
int getpwuid_r(uid_t uid, struct passwd *pwd, char *buffer,
       size_t bufsize, struct passwd **result)

getgrgid_r have similar difference. The patch is attached.

Halton.

_______________________________________________
gnome-vfs-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-vfs-list
gio-02-solaris-getid.diff (text/x-patch, 1 KB)
Index: trunk/configure.ac
===================================================================
--- trunk/configure.ac	(revision 722)
+++ trunk/configure.ac	(working copy)
@@ -89,6 +89,9 @@
   *-*-mingw*)
     glib_native_win32=yes
     ;;
+  *solaris*)
+    AC_DEFINE(ON_SOLARIS, 1, [Define to 1 if os is solaris])
+    ;;
   *)
     glib_native_win32=no
     ;;
Index: trunk/gio/glocalfileinfo.c
===================================================================
--- trunk/gio/glocalfileinfo.c	(revision 722)
+++ trunk/gio/glocalfileinfo.c	(working copy)
@@ -972,7 +972,11 @@
 
   data = g_new0 (UidData, 1);
 
+#if ON_SOLARIS
+  pwbufp = getpwuid_r (uid, &pwbuf, buffer, sizeof(buffer));
+#else
   getpwuid_r (uid, &pwbuf, buffer, sizeof(buffer), &pwbufp);
+#endif
 
   if (pwbufp != NULL)
     {
@@ -1053,7 +1057,11 @@
   if (name)
     return name;
 
+#if ON_SOLARIS
+  gbufp = getgrgid_r (gid, &gbuf, buffer, sizeof(buffer));
+#else
   getgrgid_r (gid, &gbuf, buffer, sizeof(buffer), &gbufp);
+#endif
 
   if (gbufp != NULL &&
       gbufp->gr_name != NULL &&
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.