Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
9bfe0c4e
Commit
9bfe0c4e
authored
Jun 24, 2004
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use wine_dlsym instead of dlsym to avoid the glibc dlerror bug.
Call dlsym with RTLD_DEFAULT for symbols that we don't redefine to work around another glibc bug.
parent
55efefdd
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
7 deletions
+7
-7
kthread.c
loader/kthread.c
+7
-7
No files found.
loader/kthread.c
View file @
9bfe0c4e
...
@@ -146,7 +146,7 @@ struct __res_state *__res_state(void)
...
@@ -146,7 +146,7 @@ struct __res_state *__res_state(void)
static
inline
void
writejump
(
const
char
*
symbol
,
void
*
dest
)
static
inline
void
writejump
(
const
char
*
symbol
,
void
*
dest
)
{
{
#if defined(__GLIBC__) && defined(__i386__)
#if defined(__GLIBC__) && defined(__i386__)
unsigned
char
*
addr
=
dlsym
(
RTLD_NEXT
,
symbol
);
unsigned
char
*
addr
=
wine_dlsym
(
RTLD_NEXT
,
symbol
,
NULL
,
0
);
if
(
!
addr
)
return
;
if
(
!
addr
)
return
;
...
@@ -562,7 +562,7 @@ pid_t __fork(void)
...
@@ -562,7 +562,7 @@ pid_t __fork(void)
if
(
!
libc_fork
)
if
(
!
libc_fork
)
{
{
libc_fork
=
dlsym
(
RTLD_NEXT
,
"fork"
);
libc_fork
=
wine_dlsym
(
RTLD_NEXT
,
"fork"
,
NULL
,
0
);
assert
(
libc_fork
);
assert
(
libc_fork
);
}
}
pthread_mutex_lock
(
&
atfork_mutex
);
pthread_mutex_lock
(
&
atfork_mutex
);
...
@@ -926,7 +926,7 @@ int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)
...
@@ -926,7 +926,7 @@ int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)
{
{
if
(
!
libc_sigaction
)
if
(
!
libc_sigaction
)
{
{
libc_sigaction
=
dlsym
(
RTLD_NEXT
,
"sigaction"
);
libc_sigaction
=
wine_dlsym
(
RTLD_NEXT
,
"sigaction"
,
NULL
,
0
);
assert
(
libc_sigaction
);
assert
(
libc_sigaction
);
}
}
return
libc_sigaction
(
signum
,
act
,
oldact
);
return
libc_sigaction
(
signum
,
act
,
oldact
);
...
@@ -939,10 +939,10 @@ void __pthread_initialize(void)
...
@@ -939,10 +939,10 @@ void __pthread_initialize(void)
if
(
!
done
)
if
(
!
done
)
{
{
done
=
1
;
done
=
1
;
libc_fork
=
dlsym
(
RTLD_NEXT
,
"fork"
);
libc_fork
=
wine_dlsym
(
RTLD_NEXT
,
"fork"
,
NULL
,
0
);
libc_sigaction
=
dlsym
(
RTLD_NEXT
,
"sigaction"
);
libc_sigaction
=
wine_dlsym
(
RTLD_NEXT
,
"sigaction"
,
NULL
,
0
);
libc_uselocale
=
dlsym
(
RTLD_NEXT
,
"uselocale"
);
libc_uselocale
=
wine_dlsym
(
RTLD_DEFAULT
,
"uselocale"
,
NULL
,
0
);
libc_pthread_init
=
dlsym
(
RTLD_NEXT
,
"__libc_pthread_init"
);
libc_pthread_init
=
wine_dlsym
(
RTLD_NEXT
,
"__libc_pthread_init"
,
NULL
,
0
);
if
(
libc_pthread_init
)
libc_multiple_threads
=
libc_pthread_init
(
&
libc_pthread_functions
);
if
(
libc_pthread_init
)
libc_multiple_threads
=
libc_pthread_init
(
&
libc_pthread_functions
);
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment