Ticket #1855 (closed bug: fixed)

Opened 2 years ago

Last modified 8 months ago

Glibc wide char functions are disabled

Reported by: jackburton Owned by: jackburton
Priority: high Milestone: R1
Component: System/libroot.so Version: R1/pre-alpha1
Keywords: Cc: andreasf
Blocked By: 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 2 years 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 2 years 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 2 years ago by jackburton

  • owner changed from axeld to jackburton

I'll give it a try

  Changed 2 years ago by jackburton

  • status changed from new to assigned

follow-up: ↓ 7   Changed 2 years ago by jackburton

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

in reply to: ↑ 6   Changed 2 years 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 2 years ago by andreasf

  • cc andreasf added

in reply to: ↑ 1 ; follow-up: ↓ 10   Changed 22 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 22 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 21 months ago by nielx

  • blockedby 1881 added

Adding dependency.

  Changed 21 months ago by korli

  • blocking 215 added

  Changed 17 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 17 months ago by axeld

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

  Changed 17 months ago by jackburton

  • milestone changed from R1/alpha1 to R1

  Changed 17 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 17 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 14 months ago by jackburton

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

  Changed 8 months ago by jackburton

  • blockedby 1881 removed

Fixed since r31443. Removing dependency to #1881 since it wasn't correct.

  Changed 8 months ago by jackburton

  • status changed from assigned to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.