Ticket #1855 (assigned bug)

Opened 16 months ago

Last modified 5 months ago

Glibc wide char functions are disabled

Reported by: jackburton Owned by: jackburton
Priority: high Milestone: R1
Component: System/libroot.so Version: R1 development
Cc: andreasf Blocked By: #1881
Platform: All Blocking: #215

Description

mbrtowc() and the functions in iofwide.c are stubs, IOW they don't do anything at the moment.

I tried to uncomment the #if 0'ed code in there, but the code doesn't compile (doesn't link, actually) because we have a mix of glibc versions: for example, the code in "locale" is from glibc 2.2.5, while the rest is more recent.

I think this mix was done because more recent glibcs don't compile with our gcc (at least, Jerome said so) :)

What should we do now ? Mix'n match some more until we get to a working situation ? mbrtowc.c from 2.2.5 works, at least, but then there is also iofwide.c which looks a bit more integrated with the rest (I haven't tried yet its 2.2.5 equivalent).

Change History

follow-up: ↓ 9   Changed 16 months ago by jackburton

More info on this: iofwide.c needs gconv_trans.c, but as soon as I include it in the build, it complains about undefined libc_dlopen, libc_dlclose, etc. We are actually using the bsd version of these functions, which have different names.

  Changed 16 months ago by jackburton

  • milestone changed from R1 to R1/alpha1

Schedule this for R1/alpha too, since #215 depends on this, and that one is scheduled for it.

  Changed 16 months ago by jackburton

  • owner changed from axeld to jackburton

I'll give it a try

  Changed 16 months ago by jackburton

  • status changed from new to assigned

follow-up: ↓ 7   Changed 16 months ago by jackburton

depends on #1881. By the way, don't we have bug dependency tracking ?

in reply to: ↑ 6   Changed 16 months ago by nielx

Replying to jackburton:

depends on #1881. By the way, don't we have bug dependency tracking ?

I've got a Trac plugin for that, which is unfortunately a Trac 0.11 thing. I will have to wait for Trac 0.11 to stabilize before I can use it.

Sorry!

  Changed 15 months ago by andreasf

  • cc andreasf added

in reply to: ↑ 1 ; follow-up: ↓ 10   Changed 14 months ago by andreasf

Jack,

Replying to jackburton:

More info on this: iofwide.c needs gconv_trans.c, but as soon as I include it in the build, it complains about undefined libc_dlopen, libc_dlclose, etc. We are actually using the bsd version of these functions, which have different names.

What's the status of these issues? If it's just a naming issue but the signature is identical we could just

#define __libc_dlopen bsd_name_of_dlopen
#define __libc_dlclose bsd_name_of_dlclose

Portable.NET detects the presence of mbrtowc & co. but then fails at runtime. Manually commenting out its HAVE_MBRTOWC et al. makes it run okay.

in reply to: ↑ 9   Changed 14 months ago by jackburton

Replying to andreasf:

Jack, Replying to jackburton:

More info on this: iofwide.c needs gconv_trans.c, but as soon as I include it in the build, it complains about undefined libc_dlopen, libc_dlclose, etc.

I did this already. But the problem is a bit more involved, unfortunately :) Last time I tried to track down the issue (uncommenting / reverting all the disabled stuff), I still end up with a non-working support for wide char stuff. And currently I don't have the time (and will) to look into this. So if anyone else wants to have a look, I'd be glad to step down :)

  Changed 13 months ago by nielx

  • blockedby 1881 added

Adding dependency.

  Changed 12 months ago by korli

  • blocking 215 added

  Changed 9 months ago by jackburton

Should we really keep this one with milestone set to r1/alpha ? It's not nice, of course, to have this feature missing, but I can't see how it can be resolved in a short time (unless someone dedicates SOME time on it).

  Changed 9 months ago by axeld

Agreed, I don't think this should block the alpha either.

  Changed 8 months ago by jackburton

  • milestone changed from R1/alpha1 to R1

  Changed 8 months ago by anevilyak

  • blocking 3012 added

(In #3012) Unless I'm mistaken, this is related to the missing glibc widechar support...linking that ticket just in case, though Stefano should be able to say for certain.

  Changed 8 months ago by bonefish

  • blocking 3012 removed

(In #3012) AFAIK Terminal doesn't use wide chars and I also don't think cat does. So this sounds more like a Terminal issue.

  Changed 5 months ago by jackburton

I added some code in r28970, let's see if it works better.

Note: See TracTickets for help on using tickets.