~ubuntu-branches/ubuntu/saucy/nspr/saucy-updates

« back to all changes in this revision

Viewing changes to mozilla/nsprpub/pr/src/linking/prlink.c

  • Committer: Bazaar Package Importer
  • Author(s): Alexander Sack
  • Date: 2009-06-16 11:28:24 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20090616112824-cg6qzhvt63lx7bub
Tags: 4.7.5-0ubuntu1
* New upstream version: 4.7.5 (LP: #387745)

* adjust patches to changed upstream code base
  - update debian/patches/99_configure.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
#include <image.h>
45
45
#endif
46
46
 
47
 
#ifdef XP_MACOSX
 
47
#if defined(XP_MACOSX) && defined(USE_MACH_DYLD)
48
48
#include <CodeFragments.h>
49
49
#include <TextUtils.h>
50
50
#include <Types.h>
155
155
/*
156
156
 * On these platforms, symbols have a leading '_'.
157
157
 */
158
 
#if defined(SUNOS4) || defined(DARWIN) || defined(NEXTSTEP) \
159
 
    || defined(WIN16) || defined(XP_OS2) \
 
158
#if defined(SUNOS4) || (defined(DARWIN) && defined(USE_MACH_DYLD)) \
 
159
    || defined(NEXTSTEP) || defined(WIN16) || defined(XP_OS2) \
160
160
    || ((defined(OPENBSD) || defined(NETBSD)) && !defined(__ELF__))
161
161
#define NEED_LEADING_UNDERSCORE
162
162
#endif
179
179
#endif
180
180
#endif
181
181
 
182
 
#ifdef XP_MACOSX
 
182
#if defined(XP_MACOSX) && defined(USE_MACH_DYLD)
183
183
    CFragConnectionID           connection;
184
184
    CFBundleRef                 bundle;
185
185
    Ptr                         main;
223
223
/************************************************************************/
224
224
 
225
225
#if !defined(USE_DLFCN) && !defined(HAVE_STRERROR)
226
 
static char* errStrBuf = NULL;
227
226
#define ERR_STR_BUF_LENGTH    20
228
 
static char* errno_string(PRIntn oserr)
229
 
{
230
 
    if (errStrBuf == NULL)
231
 
        errStrBuf = PR_MALLOC(ERR_STR_BUF_LENGTH);
232
 
    PR_snprintf(errStrBuf, ERR_STR_BUF_LENGTH, "error %d", oserr);
233
 
    return errStrBuf;
234
 
}
235
227
#endif
236
228
 
237
229
static void DLLErrorInternal(PRIntn oserr)
247
239
#elif defined(HAVE_STRERROR)
248
240
    error = strerror(oserr);  /* this should be okay */
249
241
#else
250
 
    error = errno_string(oserr);
 
242
    char errStrBuf[ERR_STR_BUF_LENGTH];
 
243
    PR_snprintf(errStrBuf, sizeof(errStrBuf), "error %d", oserr);
 
244
    error = errStrBuf;
251
245
#endif
252
246
    if (NULL != error)
253
247
        PR_SetErrorText(strlen(error), error);
382
376
        free(_pr_currentLibPath);
383
377
        _pr_currentLibPath = NULL;
384
378
    }
385
 
 
386
 
#if !defined(USE_DLFCN) && !defined(HAVE_STRERROR)
387
 
    PR_DELETE(errStrBuf);
388
 
#endif
389
379
}
390
380
#endif
391
381
 
629
619
}
630
620
#endif
631
621
 
632
 
#ifdef XP_MACOSX
 
622
#if defined(XP_MACOSX) && defined(USE_MACH_DYLD)
633
623
 
634
624
/*
635
625
** macLibraryLoadProc is a function definition for a Mac shared library
788
778
    return (lm->dlh != NULL || lm->image != NULL) ? PR_SUCCESS : PR_FAILURE;
789
779
}
790
780
 
791
 
#endif /* XP_MACOSX */
 
781
#endif /* XP_MACOSX && USE_MACH_DYLD */
792
782
 
793
783
#ifdef WIN95
794
784
static HMODULE WINAPI
926
916
    }
927
917
#endif /* WIN32 || WIN16 */
928
918
 
929
 
#ifdef XP_MACOSX
 
919
#if defined(XP_MACOSX) && defined(USE_MACH_DYLD)
930
920
    {
931
921
    int     i;
932
922
    PRStatus status;
954
944
    }
955
945
#endif
956
946
 
957
 
#if defined(XP_UNIX) && !defined(XP_MACOSX)
 
947
#if defined(XP_UNIX) && !(defined(XP_MACOSX) && defined(USE_MACH_DYLD))
958
948
#ifdef HAVE_DLL
959
949
    {
960
950
#if defined(USE_DLFCN)
1018
1008
    pr_loadmap = lm;
1019
1009
    }
1020
1010
#endif /* HAVE_DLL */
1021
 
#endif /* XP_UNIX */
 
1011
#endif /* XP_UNIX && !(XP_MACOSX && USE_MACH_DYLD) */
1022
1012
 
1023
1013
    lm->refCount = 1;
1024
1014
 
1299
1289
    }
1300
1290
#endif  /* XP_PC */
1301
1291
 
1302
 
#ifdef XP_MACOSX
 
1292
#if defined(XP_MACOSX) && defined(USE_MACH_DYLD)
1303
1293
    /* Close the connection */
1304
1294
    if (lib->connection)
1305
1295
        CloseConnection(&(lib->connection));
1398
1388
    f = GetProcAddress(lm->dlh, name);
1399
1389
#endif  /* WIN32 || WIN16 */
1400
1390
 
1401
 
#ifdef XP_MACOSX
 
1391
#if defined(XP_MACOSX) && defined(USE_MACH_DYLD)
1402
1392
/* add this offset to skip the leading underscore in name */
1403
1393
#define SYM_OFFSET 1
1404
1394
    if (lm->bundle) {
1439
1429
            f = NULL;
1440
1430
    }
1441
1431
#undef SYM_OFFSET
1442
 
#endif /* XP_MACOSX */
 
1432
#endif /* XP_MACOSX && USE_MACH_DYLD */
1443
1433
 
1444
1434
#ifdef XP_BEOS
1445
1435
    if( B_NO_ERROR != get_image_symbol( (image_id)lm->dlh, name, B_SYMBOL_TYPE_TEXT, &f ) ) {
1627
1617
PR_GetLibraryFilePathname(const char *name, PRFuncPtr addr)
1628
1618
{
1629
1619
#if defined(USE_DLFCN) && (defined(SOLARIS) || defined(FREEBSD) \
1630
 
        || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__))
 
1620
        || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
 
1621
        || defined(DARWIN))
1631
1622
    Dl_info dli;
1632
1623
    char *result;
1633
1624