|
Kernel Traffic Latest | Archives | People | Topics |
Wine Latest | Archives | People | Topics |
GNUe Latest | Archives | People | Topics |
| Czech |
| Home | News | RSS Feeds | Mailing Lists | Authors Info | Mirrors | Stalled Traffic |
Table Of Contents
| 1. | ElfDLLs (cont'd) | ||
| 2. | DIB drawing speed-up | ||
| 3. | Signal handling on FreeBSD | ||
| 4. | Big fonts | ||
| 5. | Anonymous unions |
Introduction
This is the seventh release of the Wine's kernel cousin publication. It's main goal is to distribute widely what's going on around Wine (the Un*x windows emulator).mpr, winspool = builtin, native
mpr, winspool.drv = builtin, native
1. ElfDLLs (cont'd)
Archive Link: "ElfDLLs (cont'd)"
People: Ulrich Weigand, Bertho Stultiens, Alexandre Julliard, , Patrik Stridvall
The discussion on ElfDLLs kept on going after a week of cease-fire (see previous two weeks old edition). First of all, the rationale of elf-dll was clarified. Ulrich Weigand's point of view:2. DIB drawing speed-up
Archive Link: "DIB drawing speed-up"
People: , Huw Davies, Eric Pouech, Marcus Meissner, Gavriel State
Gavriel State (finally :-) submitted the patch for enhancing speed for drawing DIB sections. Even if Huw Davies pointed out some issues (quickly fixed), some others (like Marcus Meissner) reported some failure (especially in GetDIBits function). Gav said this should be fixed later on next week and asked Alexandre to revert this patch. Eric Pouech disagreed, mainly because keeping the patch inside the CVS tree would speed up the correction phase.3. Signal handling on FreeBSD
Archive Link: "Signal handling on FreeBSD"
People: Jurgend Lock, Ulrich Weigand, Alexandre Julliard,
Jurgend Lock reported some issues with signal handlers on FreeBSD.4. Big fonts
Archive Link: "Big fonts"
People: Jurgend Lock, , Gérard Patel, Richard Cohen
Jurgend Lock reported some strange behavior (very big fonts) on latest CVS. Gérard Patel explained this was caused by a recent patch from Richard Cohen which changed the default size of system fonts. Richard explained that this patch assumed the existence of a previous patch of his that Alexandre didn't yet apply, hence the problem. Richard's first patch has been applied, and this should be sorted out now.5. Anonymous unions
Archive Link: "Anonymous unions"
People: Alexandre Julliard, , Patrik Stridval, Marcus Meissner
Patrik Stridval proposed last week a patch to let any compiler use the anonmymous unions used by Microsoft. His idea is to chose one field amongst the ones provided in the anonymous union. Apparently, Microsoft did use a construct like:
#if defined(__cplusplus) || !defined(NONAMELESSUNION)
#define DUMMYUNIONNAME
#else
#define DUMMYUNIONNAME u
#endif
typedef struct {
field1_t field1;
union {
field2_t field2;
field3_t field3;
} DUMMYUNIONNAME;
} struct_t;
void test(struct_t *ps)
{
struct_t s;
s.DUMMYUNIONNAME.field2 = ps->DUMMYNIONNAME.field1;
}
but, if the compiler does support anonymous structs, this is expanded into
s..field2 and ps->.field1 which gcc doesn't like
(however it seems Microsoft didn't suffer from it).
Marcus Meissner proposed to append the dot to DUMMYUNIONNAME and to
use it as:
s.DUMMYUNIONNAME field2 = ps->DUMMYUNIONNAME field1;
Alexandre Julliard proposed:
#if defined(__cplusplus) || !defined(NONAMELESSUNION)
#define _U(x) u.x
#else
#define _U(x) x
#endif
s._U(field2) = ps->_U(field1);
Then, Patrik and Alexandre discussed the best (or "least worse") solution
when porting existing Windows code using Winelib with a compiler not
supporting anonymous structs. Alexandre found that doing a search and
replace (to add the anonymous struct macro) was better than Patrik solution,
which, when the used field was not the one choosen from the struct, would
lead to design change, which are worse than pure text manipulation.
Sharon And Joy
Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0. |