Custom Query (245 matches)
Results (22 - 24 of 245)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#189 | invalid | emxomfar cannot build big libraries for Mozilla | ||
Description |
Build of static libs for Mozilla fails with 'Source library too big'. Looking at code, this patch Index: omflibcl.c =================================================================== --- omflibcl.c (revision 3612) +++ omflibcl.c (working copy) @@ -22,14 +22,14 @@ /* Build a vector which maps page numbers to module table entries. */ - reverse = malloc (65536 * sizeof (*reverse)); + reverse = malloc (65536*2 * sizeof (*reverse)); if (reverse == NULL) { errno = ENOMEM; return omflib_set_error (error); } - for (i = 0; i < 65536; ++i) + for (i = 0; i < 65536*2; ++i) reverse[i] = -1; for (i = 0; i < src->mod_count; ++i) reverse[src->mod_tab[i].page] = i; @@ -46,7 +46,7 @@ free (reverse); return -1; } - if (long_page > 65535) + if (long_page > (65536*2-1)) { strcpy (error, "Source library too big"); free (reverse); fixed Peter build problems. I only doubled the number of entries, I don't know if this is the best fix. |
|||
#190 | wontfix | Libc path rewriting is not working for fork()ed processes | ||
Description |
Use of the klibccfg pathrewriter dll works only for main process: child forked processes can use only predefined libc rewriting rules (e.g. /@tmpdir). This could be a dll init fault. Sample testcase: #include <sys/stat.h> #include <stdio.h> #include <unistd.h> //#define DIR "/@tmpdir" #define DIR "/$e/dati/yuri" void test_dir( void) { int ret; struct stat st; printf( "%d test dir\n", getpid()); ret = stat( DIR, &st); if (ret != 0) { printf( "%d test dir failed\n", getpid()); return; } printf( "%d test dir ok\n", getpid()); } void test( void) { FILE* f; printf( "%d test file\n", getpid()); f = fopen( DIR "/fax.odt", "rb"); if (f == NULL) { printf( "%d test file failed\n", getpid()); return; } fclose(f); printf( "%d test file OK\n", getpid()); } void main( void) { printf( "pid %d\n", getpid()); fork(); test(); test_dir(); } |
|||
#202 | fixed | libc gid setting is calling wrong backend function | ||
Description |
gid related functions are calling uid backend, here is the supposed corrected source code: Index: b_processCredentials.c =================================================================== --- b_processCredentials.c (revision 3523) +++ b_processCredentials.c (working copy) @@ -135,7 +135,7 @@ int __libc_Back_processSetGid(gid_t gid) { LIBCLOG_ENTER("gid=%d (%#x)\n", gid, gid); - int rc = __libc_spmSetUid(gid); + int rc = __libc_spmSetGid(gid); if (!rc) LIBCLOG_RETURN_INT(rc); LIBCLOG_ERROR_RETURN_INT(rc); @@ -155,7 +155,7 @@ int __libc_Back_processSetGidAll(gid_t rgid, gid_t egid, gid_t svgid) { LIBCLOG_ENTER("rgid=%d (%#x) egid=%d (%#x) svgid=%d (%#x)\n", rgid, rgid, egid, egid, svgid, svgid); - int rc = __libc_spmSetUidAll(rgid, egid, svgid); + int rc = __libc_spmSetGidAll(rgid, egid, svgid); if (!rc) LIBCLOG_RETURN_INT(rc); LIBCLOG_ERROR_RETURN_INT(rc); |
Note: See TracQuery
for help on using queries.