Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys
>>> Takeshi Nakayama <tn%catvmics.ne.jp@localhost> wrote
> >>> Justin Cormack <justin%specialbusservice.com@localhost> wrote
>
> > Er, you can't do that.
> >
> > 1. It breaks the rump builds on most platforms
> > http://build.myriabit.eu:8012/waterfall as the prototypes dont match
> > eg see http://build.myriabit.eu:8012/builders/ppc64-cross/builds/5585/steps/shell_3/logs/stdio
>
> It seems that posix says 2nd arg of iconv(3) is char **, but
> NetBSD's one is const char **.
>
> > 2. There is no requirement that rump runs on a platform that has iconv
> > anyway, it may be running on bare metal, or non Posix platform.
> >
> > Not sure what the intention was though - I am sure we can find a way
> > around it...
>
> I would like to include this at least on NetBSD host since we don't
> have kernel iconv and then mount_smbfs(8) is useless for filename
> conversions.
>
> So is it ok to add a compile-time option as below and define it
> somewhere? Or are there any more appropriate make variables to
> detect host OS?
On second thought, it seems user component can use __NetBSD__
definition, how about this change?
-- Takeshi Nakayama
Index: netsmb_user.c
===================================================================
RCS file: /cvsroot/src/sys/rump/dev/lib/libnetsmb/netsmb_user.c,v
retrieving revision 1.1
diff -u -d -r1.1 netsmb_user.c
--- netsmb_user.c 15 Nov 2014 18:49:04 -0000 1.1
+++ netsmb_user.c 16 Nov 2014 00:21:28 -0000
@@ -36,6 +36,7 @@
int
rumpcomp_netsmb_iconv_open(const char *to, const char *from, void **handle)
{
+#ifdef __NetBSD__
iconv_t cd;
int rv;
@@ -49,11 +50,16 @@
}
return rumpuser_component_errtrans(rv);
+#else
+ /* fallback to use stub functions */
+ return 0;
+#endif
}
int
rumpcomp_netsmb_iconv_close(void *handle)
{
+#ifdef __NetBSD__
int rv;
if (iconv_close((iconv_t)handle) == -1)
@@ -62,12 +68,17 @@
rv = 0;
return rumpuser_component_errtrans(rv);
+#else
+ /* do nothing */
+ return 0;
+#endif
}
int
rumpcomp_netsmb_iconv_conv(void *handle, const char **inbuf,
size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
{
+#ifdef __NetBSD__
int rv;
if (iconv((iconv_t)handle, inbuf, inbytesleft, outbuf, outbytesleft)
@@ -77,5 +88,9 @@
rv = 0;
return rumpuser_component_errtrans(rv);
+#else
+ /* do nothing */
+ return 0;
+#endif
}
#endif
Home |
Main Index |
Thread Index |
Old Index