<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yui_3_16_0_1_1412625357546_34101">Hi list,</div><div dir="ltr" id="yui_3_16_0_1_1412625357546_34100">[iem_sqrt4~] crashes when trying to create on amd_64.  It creates fine on 32 bit linux.</div><div id="yui_3_16_0_1_1412625357546_34111" dir="ltr"><br></div><div id="yui_3_16_0_1_1412625357546_34110" dir="ltr">This leads me to believe there is something in the setup routine that makes an assumption that only holds true for a 32bit OS.</div><div id="yui_3_16_0_1_1412625357546_34129" dir="ltr"><br></div><div id="yui_3_16_0_1_1412625357546_34191" dir="ltr">The only thing that stands out to me is a function called in the setup routine, posted below.  This looks particularly suspicious to my untrained eye:</div><div id="yui_3_16_0_1_1412625357546_34197" dir="ltr">      *(long *)(&f) = l;</div><div id="yui_3_16_0_1_1412625357546_34206" dir="ltr">Even if that's not causing the crash, what does it do?<br></div><div id="yui_3_16_0_1_1412625357546_34207" dir="ltr"><br></div><div id="yui_3_16_0_1_1412625357546_34205" dir="ltr">And does that or anything stand out to anyone else?</div><div id="yui_3_16_0_1_1412625357546_34204" dir="ltr"><br></div><div dir="ltr">Thanks,</div><div dir="ltr">Jonathan<br></div><div dir="ltr"><br></div><div id="yui_3_16_0_1_1412625357546_34158" dir="ltr">static void iem_sqrt4_tilde_maketable(void)<br style="" class="">{<br style="" class="">  int i;<br style="" class="">  t_float f;<br style="" class="">  long l;<br style="" class="">  <br style="" class="">  if(!iem_sqrt4_tilde_exptab)<br style="" class="">  {<br style="" class="">    iem_sqrt4_tilde_exptab = (t_float *)getbytes(sizeof(t_float) * IEMSQRT4TAB1SIZE);<br style="" class="">    for(i=0; i<IEMSQRT4TAB1SIZE; i++)<br style="" class="">    {<br style="" class="">      l = (i ? (i == IEMSQRT4TAB1SIZE-1 ? IEMSQRT4TAB1SIZE-2 : i) : 1)<< 23;<br style="" class="">      *(long *)(&f) = l;<br style="" class="">      iem_sqrt4_tilde_exptab[i] = 1.0f/sqrt(f);<br style="" class="">    }<br style="" class="">  }<br style="" class="">  if(!iem_sqrt4_tilde_mantissatab)<br style="" class="">  {<br style="" class="">    iem_sqrt4_tilde_mantissatab = (t_float *)getbytes(sizeof(t_float) * IEMSQRT4TAB2SIZE);<br style="" class="">    for(i=0; i<IEMSQRT4TAB2SIZE; i++)<br style="" class="">    {<br style="" class="">      f = 1.0f + (1.0f/(t_float)IEMSQRT4TAB2SIZE) * (t_float)i;<br style="" class="">      iem_sqrt4_tilde_mantissatab[i] = 1.0f/sqrt(f);<br style="" class="">    }<br style="" class="">  }<br style="" class="">}<br style="" class=""><br></div><div></div></div></body></html>