That's what the function looks like on my side (xp sp3, opengl32.dll version 5.1.2600.5512):
Code:
.text:5ED03124 ; void __stdcall glClear(GLbitfield mask)
.text:5ED03124 public _glClear@4
.text:5ED03124 _glClear@4 proc near ; DATA XREF: .text:off_5EDA2CB8o
.text:5ED03124
.text:5ED03124 mask = dword ptr 4
.text:5ED03124
.text:5ED03124 mov edx, large fs:18h
.text:5ED0312B cmp _dwTlsIndex, 40h
.text:5ED03132 jge short loc_5ED03144
.text:5ED03134 mov eax, edx
.text:5ED03136 add edx, _dwTlsOffset
.text:5ED0313C mov edx, [edx]
.text:5ED0313E jmp dword ptr [edx+32Ch]
.text:5ED03144 ; ---------------------------------------------------------------------------
.text:5ED03144
.text:5ED03144 loc_5ED03144: ; CODE XREF: glClear(x)+Ej
.text:5ED03144 push _dwTlsIndex ; dwTlsIndex
.text:5ED0314A call ds:__imp__TlsGetValue@4 ; TlsGetValue(x)
.text:5ED03150 xchg eax, edx
.text:5ED03151 jmp dword ptr [edx+32Ch]
.text:5ED03151 _glClear@4 endp
I'm not at all versed in MacOS, but it looks like you're trying to detour some sort of import wrapper or w/e.
You should be targeting the glClear in the actual opengl32 binary instead.