<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><font face="Monaco" class="">Trying to build libidl+universal on 10.5 fails. I’m set up to build it universal, with universal_archs as i386 and x86_64. It uses the muniversal portgroup, which I don’t know tons about.</font><div class=""><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><font face="Monaco" class="">It fails because an environment variable doesn’t get set properly during the x86_64 build:</font></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><div class=""><font face="Monaco" class="">checking for access... yes</font></div><div class=""><font face="Monaco" class="">checking size of long long... 8</font></div><div class=""><font face="Monaco" class="">checking for format to printf and scanf a guint64... configure: error: in `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_libidl/libidl/work/libIDL-0.8.14-x86_64':</font></div><div class=""><font face="Monaco" class="">configure: error: cannot run test program while cross compiling</font></div></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><font face="Monaco" class="">In the Portfile, there is this block:</font></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><div class=""><font face="Monaco" class=""># Required when cross-compiling.</font></div><div class=""><font face="Monaco" class="">if { ${os.arch} eq "i386" } {</font></div><div class=""><font face="Monaco" class="">    if { ${os.major} >= 10 } {</font></div><div class=""><font face="Monaco" class="">        set merger_configure_env(ppc) libIDL_cv_long_long_format=ll</font></div><div class=""><font face="Monaco" class="">    }</font></div><div class=""><font face="Monaco" class="">    set merger_configure_env(ppc64)   libIDL_cv_long_long_format=ll</font></div><div class=""><font face="Monaco" class="">} else {</font></div><div class=""><font face="Monaco" class="">    set merger_configure_env(i386)    libIDL_cv_long_long_format=ll</font></div><div class=""><font face="Monaco" class="">    set merger_configure_env(x86_64)  libIDL_cv_long_long_format=ll</font></div><div class=""><font face="Monaco" class="">}</font></div></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><font face="Monaco" class="">I don’t really understand why this block would do what it’s doing. Doesn’t seem to make sense to me. </font><span style="font-family: Monaco;" class="">However, this same block, or variants thereof, are in many Portfiles, so it’s apparently the recommended way….</span></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><font face="Monaco" class="">Anyway, I replaced that block with this, which just seems more like what is meant to be done to me, and it works.</font></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><div class=""><font face="Monaco" class=""># Required when cross-compiling.</font></div><div class=""><font face="Monaco" class="">foreach arch ${configure.universal_archs} {</font></div><div class=""><font face="Monaco" class="">    lappend merger_configure_env(${arch})  libIDL_cv_long_long_format=ll</font></div><div class=""><font face="Monaco" class="">}</font></div></div><div class=""><br class=""></div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Am I missing something? Are all those blocks in all those Portfiles incorrect?</div><div class=""><br class=""></div><div class="">Ken</div></body></html>