From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: Date: Tue, 9 Dec 2008 03:13:41 -0200 From: "=?ISO-8859-1?Q?Mart=EDn_Ferrari?=" To: "Russ Cox" Subject: Drawterm problems Cc: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net>, "Thiemo Seufer" , 508068@bugs.debian.org, "Marc 'HE' Brockschmidt" , 508100@bugs.debian.org, "=?ISO-8859-1?Q?Dami=E1n_Viano?=" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_65249_32558726.1228799621219" Topicbox-Message-UUID: 5d901d04-ead4-11e9-9d60-3106f5b1d025 ------=_Part_65249_32558726.1228799621219 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline (Copying 9fans in case somebody can lend a hand on this, copying the Debian bug report(er)s) Hi Russ, I'm a Plan9 newbie and Debian Developer, and I'm currently tying to fix bugs that showed after I uploaded drawterm to Debian. However I have hit some problems that are being difficult to solve. I've managed to fix most of them, and I'd like to share the patches. First problem: it doesn't compile on mips at all, the assembly code seems invalid. In [0] you can find a proposed patch. Second problem: the arch handling is quite fragile, and it doesn't work for sparc under linux [1] (uname -m is sparc64, not sun4u), for example. But the biggest problem is that there are no provisions for other architectures. I have prepared a big patch for this, see below. Third: segfaults on amd64, possibly other arches that I couldn't test. After a lot of guessing, I suspected of these constructs in lib.h: typedef int p9_long; #define long int Changing them to match longs with longs made the segfault go away, as amd64 uses 64bits for longs and the included libX.h was botched because of the "#define long int". But then it popped many type errors all around, since there are many inconsistencies (for example, function prototypes that doesn't match exactly the fuction definitions) and all the code assumes long=3D=3Dint. I'm trying to fix this, but the problem is very deep: there are many places where size specific types should be used instead of longs and ints. I'm still trying to fix this, and would greatly appreciate any help. ~~~~ I'm including the arch-related patch: it disables all the posix-*/ code (except for the x86 hashing routines, which are now conditionally complied from libsec) and instead creates a libmachdep directory with a tas.c file. In tas.c it tries to use the fairly new builtin atomic operations, and falls back to assemby if it's available. Also, the getcallerpc function is replaced with other gcc builtin, but I haven't made provisions for fallback to assembly here as I think that the builtin I'm using is widely available and that would have made the patch very complex. This change enabled drawterm to compile on these architectures: i386 amd64 sparc64 mips mipsel alpha ia64 powerpc s390. But since most of the porter machines I can use don't have X forwarding, I cannot test that it works correctly. sparc64 and i386 were tested and it seems to work ok. [0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D508068 [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D508100 --=20 Mart=EDn Ferrari ------=_Part_65249_32558726.1228799621219 Content-Type: text/x-patch; name=replace-archspecific-with-gcc-extensions.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_foi37uv60 Content-Disposition: attachment; filename=replace-archspecific-with-gcc-extensions.patch SW5kZXg6IGRyYXd0ZXJtL2luY2x1ZGUvbGliLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZHJhd3Rlcm0ub3Jp Zy9pbmNsdWRlL2xpYi5oCisrKyBkcmF3dGVybS9pbmNsdWRlL2xpYi5oCkBAIC0yNDAsNyArMjQw LDEyIEBAIGV4dGVybglpbnQJZm10cHJpbnQoRm10KiwgY2hhciosIC4uLik7CiBleHRlcm4JaW50 CWZtdHZwcmludChGbXQqLCBjaGFyKiwgdmFfbGlzdCk7CiBleHRlcm4Jdm9pZCoJbWFsbG9jeih1 bG9uZywgaW50KTsKIAotZXh0ZXJuCXVpbnRwdHIJZ2V0Y2FsbGVycGModm9pZCopOworLyogVXNl IGEgR0NDIGV4dGVuc2lvbiB0aGF0IHByb3ZpZGVzIHRoZSBzYW1lLCB3aXRob3V0IHNwZWNpZnlp bmcgdGhlIGFjdHVhbAorICogYXNzZW1ibHkgY29kZS4gSW4gdGhlIGNvZGUgaXMgYWx3YXlzIHVz ZWQgdG8gcmV0dXJuIHRoZSBjYWxsZXIgdG8gdGhlIGFjdHVhbAorICogZnVuY3Rpb24sIHNvIEkg aWdub3JlIHRoZSBhcmd1bWVudCAqLworLyogZXh0ZXJuCXVpbnRwdHIJZ2V0Y2FsbGVycGModm9p ZCopOyAqLworI2RlZmluZQkJZ2V0Y2FsbGVycGMoYSkgXAorCQkoKHVpbnRwdHIpX19idWlsdGlu X3JldHVybl9hZGRyZXNzKDApKQogZXh0ZXJuCWNoYXIqCWNsZWFubmFtZShjaGFyKik7CiBleHRl cm4Jdm9pZAlzeXNmYXRhbChjaGFyKiwgLi4uKTsKIGV4dGVybgljaGFyKglzdHJlY3B5KGNoYXIq LCBjaGFyKiwgY2hhciopOwpJbmRleDogZHJhd3Rlcm0vTWFrZS5pcml4Cj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGRyYXd0ZXJtLm9yaWcvTWFrZS5pcml4CisrKyBkcmF3dGVybS9NYWtlLmlyaXgKQEAgLTIwLDUg KzIwLDQgQEAgTUFLRT1nbWFrZQogCiBhbGw6IGRlZmF1bHQKIAotbGlibWFjaGRlcC5hOgotCShj ZCBwb3NpeC1taXBzICYmICQoTUFLRSkpCitBUkNIPW1pcHMKSW5kZXg6IGRyYXd0ZXJtL01ha2Uu b3N4Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIGRyYXd0ZXJtLm9yaWcvTWFrZS5vc3gKKysrIGRyYXd0ZXJtL01h a2Uub3N4CkBAIC0xNSw2ICsxNSw1IEBAIEFVRElPPW5vbmUKIAogYWxsOiBkZWZhdWx0CiAKLWxp Ym1hY2hkZXAuYToKLQlhcmNoPWB1bmFtZSAtbXxzZWQgJ3MvaS44Ni8zODYvO3MvUG93ZXIgTWFj aW50b3NoL3Bvd2VyLydgOyBcCi0JKGNkIHBvc2l4LSQkYXJjaCAmJiAgbWFrZSkKK0FSQ0ggOj0g JChzaGVsbCB1bmFtZSAtbSB8XAorCXNlZCAncy9pLjg2LzM4Ni87cy9Qb3dlciBNYWNpbnRvc2gv cG93ZXIvO3MveDg2XzY0L2FtZDY0LycgKQpJbmRleDogZHJhd3Rlcm0vTWFrZS5vc3gteDExCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGRyYXd0ZXJtLm9yaWcvTWFrZS5vc3gteDExCisrKyBkcmF3dGVybS9NYWtl Lm9zeC14MTEKQEAgLTE2LDYgKzE2LDUgQEAgQVVESU89bm9uZQogCiBhbGw6IGRlZmF1bHQKIAot bGlibWFjaGRlcC5hOgotCWFyY2g9YHVuYW1lIC1tfHNlZCAncy9pLjg2LzM4Ni87cy9Qb3dlciBN YWNpbnRvc2gvcG93ZXIvJ2A7IFwKLQkoY2QgcG9zaXgtJCRhcmNoICYmICBtYWtlKQorQVJDSCA6 PSAkKHNoZWxsIHVuYW1lIC1tIHxcCisJc2VkICdzL2kuODYvMzg2LztzL1Bvd2VyIE1hY2ludG9z aC9wb3dlci87cy94ODZfNjQvYW1kNjQvJyApCkluZGV4OiBkcmF3dGVybS9NYWtlLnN1bgo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBkcmF3dGVybS5vcmlnL01ha2Uuc3VuCisrKyBkcmF3dGVybS9NYWtlLnN1bgpA QCAtMTYsNiArMTYsNSBAQCBBVURJTz1ub25lCiAKIGFsbDogZGVmYXVsdAogCi1saWJtYWNoZGVw LmE6Ci0JYXJjaD1gdW5hbWUgLW18c2VkICdzL2kuODYvMzg2LztzL1Bvd2VyIE1hY2ludG9zaC9w b3dlci8nYDsgXAotCShjZCBwb3NpeC0kJGFyY2ggJiYgIG1ha2UpCitBUkNIIDo9ICQoc2hlbGwg dW5hbWUgLW0gfFwKKwlzZWQgJ3MvaS44Ni8zODYvO3MvUG93ZXIgTWFjaW50b3NoL3Bvd2VyLztz L3g4Nl82NC9hbWQ2NC8nICkKSW5kZXg6IGRyYXd0ZXJtL01ha2UudW5peAo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBkcmF3dGVybS5vcmlnL01ha2UudW5peAorKysgZHJhd3Rlcm0vTWFrZS51bml4CkBAIC0xOCw2 ICsxOCw1IEBAIEFVRElPPXVuaXgKIAogYWxsOiBkZWZhdWx0CiAKLWxpYm1hY2hkZXAuYToKLQlh cmNoPWB1bmFtZSAtbXxzZWQgJ3MvaS44Ni8zODYvO3MvUG93ZXIgTWFjaW50b3NoL3Bvd2VyLzsg cy94ODZfNjQvYW1kNjQvJ2A7IFwKLQkoY2QgcG9zaXgtJCRhcmNoICYmICBtYWtlKQorQVJDSCA6 PSAkKHNoZWxsIHVuYW1lIC1tIHxcCisJc2VkICdzL2kuODYvMzg2LztzL1Bvd2VyIE1hY2ludG9z aC9wb3dlci87cy94ODZfNjQvYW1kNjQvJyApCkluZGV4OiBkcmF3dGVybS9NYWtlLndpbjMyCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGRyYXd0ZXJtLm9yaWcvTWFrZS53aW4zMgorKysgZHJhd3Rlcm0vTWFrZS53 aW4zMgpAQCAtMzMsMTAgKzMzLDcgQEAgWE9GSUxFUz05YmFsbC4kTwogCiBhbGw6IGRlZmF1bHQK IAotIyBmb3Igcm9vdAotbGlibWFjaGRlcC5hOgotCShjZCB3aW4zMi0zODY7IG1ha2UpCi0KIDli YWxsLiRPOiA5YmFsbC5yYyA5YmFsbC5pY28KIAkkKFdJTkRSRVMpIC1pIDliYWxsLnJjIC1vIDli YWxsLm8KIAorQVJDSD0zODYKSW5kZXg6IGRyYXd0ZXJtL01ha2VmaWxlCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGRyYXd0ZXJtLm9yaWcvTWFrZWZpbGUKKysrIGRyYXd0ZXJtL01ha2VmaWxlCkBAIC0yNSw3ICsy NSw3IEBAIExJQlMxPVwKIAlsaWJjL2xpYmMuYVwKIAogIyBzdHVwaWQgZ2NjCi1MSUJTPSQoTElC UzEpICQoTElCUzEpICQoTElCUzEpIGxpYm1hY2hkZXAuYQorTElCUz0kKExJQlMxKSAkKExJQlMx KSAkKExJQlMxKSBsaWJtYWNoZGVwL2xpYm1hY2hkZXAuYQogCiBkZWZhdWx0OiAkKFRBUkcpCiAk KFRBUkcpOiAkKE9GSUxFUykgJChMSUJTKQpAQCAtNjksMyArNjksNiBAQCBsaWJjL2xpYmMuYToK IAogZ3VpLSQoR1VJKS9saWJndWkuYToKIAkoY2QgZ3VpLSQoR1VJKTsgJChNQUtFKSkKKworbGli bWFjaGRlcC9saWJtYWNoZGVwLmE6CisJKGNkIGxpYm1hY2hkZXA7ICQoTUFLRSkpCkluZGV4OiBk cmF3dGVybS9saWJzZWMvTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZHJhd3Rlcm0ub3JpZy9saWJz ZWMvTWFrZWZpbGUKKysrIGRyYXd0ZXJtL2xpYnNlYy9NYWtlZmlsZQpAQCAtMzMsNiArMzMsNyBA QCBPRklMRVM9XAogCWhtYWMuJE9cCiAJbWQ0LiRPXAogCW1kNS4kT1wKKwlfbWQ1YmxvY2suJE9c CiAJbWQ1cGlja2xlLiRPXAogCW5mYXN0cmFuZC4kT1wKIAlwcm5nLiRPXApAQCAtNDUsNiArNDYs NyBAQCBPRklMRVM9XAogCXJzYWdlbi4kT1wKIAlyc2Fwcml2dG9wdWIuJE9cCiAJc2hhMS4kT1wK Kwlfc2hhMWJsb2NrLiRPXAogCXNoYTFwaWNrbGUuJE9cCiAJc21hbGxwcmltZXMuJE8KIApAQCAt NTYsMyArNTgsMjMgQEAgJChMSUIpOiAkKE9GSUxFUykKICUuJE86ICUuYwogCSQoQ0MpICQoQ0ZM QUdTKSAkKi5jCiAKK2lmZXEgIiQoQVJDSCkiICIzODYiCitfc2hhMWJsb2NrLiRPOiBzaGExYmxv Y2sucworCSQoQVMpIC1vICRAICQ8CisKK19tZDVibG9jay4kTzogbWQ1YmxvY2sucworCSQoQVMp IC1vICRAICQ8CisKK3NoYTFibG9jay5zOiAuLi9wb3NpeC0zODYvc2hhMWJsb2NrLnNwcAorCSQo Q0MpIC1FIC0gPCAkPCA+ICRACisKK21kNWJsb2NrLnM6IC4uL3Bvc2l4LTM4Ni9tZDVibG9jay5z cHAKKwkkKENDKSAtRSAtIDwgJDwgPiAkQAorZWxzZQorX3NoYTFibG9jay4kTzogc2hhMWJsb2Nr LmMKKwllY2hvIC0kKEFSQ0gpLQorCSQoQ0MpICQoQ0ZMQUdTKSAtbyAkQCAkPAorCitfbWQ1Ymxv Y2suJE86IG1kNWJsb2NrLmMKKwkkKENDKSAkKENGTEFHUykgLW8gJEAgJDwKK2VuZGlmCkluZGV4 OiBkcmF3dGVybS9saWJtYWNoZGVwL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC9kZXYvbnVsbAor KysgZHJhd3Rlcm0vbGlibWFjaGRlcC9NYWtlZmlsZQpAQCAtMCwwICsxLDE0IEBACitST09UPS4u CitpbmNsdWRlIC4uL01ha2UuY29uZmlnCitMSUI9bGlibWFjaGRlcC5hCisKK09GSUxFUz1cCisJ dGFzLiRPCisKK2RlZmF1bHQ6ICQoTElCKQorJChMSUIpOiAkKE9GSUxFUykKKwkkKEFSKSByICQo TElCKSAkKE9GSUxFUykKKwkkKFJBTkxJQikgJChMSUIpCisKKyUuJE86ICUuYworCSQoQ0MpICQo Q0ZMQUdTKSAkKi5jCkluZGV4OiBkcmF3dGVybS9saWJtYWNoZGVwL3Rhcy5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIC9kZXYvbnVsbAorKysgZHJhd3Rlcm0vbGlibWFjaGRlcC90YXMuYwpAQCAtMCwwICsxLDg5 IEBACisjaW5jbHVkZSAidS5oIgorI2luY2x1ZGUgImxpYmMuaCIKKworI2RlZmluZSBHQ0NfVkVS U0lPTiAoX19HTlVDX18gKiAxMDAwMCBcCisJCSsgX19HTlVDX01JTk9SX18gKiAxMDAgXAorCQkr IF9fR05VQ19QQVRDSExFVkVMX18pCisKK2xvbmcKK3Rhcyhsb25nICp4KQoreworCWxvbmcJdiA9 IDE7CisjaWYgKCEgX19hcm1fXykgJiYgKCEgX19tNjhrX18pICYmICgoR0NDX1ZFUlNJT04gPiA0 MDMwMCkgfHwgXAorCQkoX19hbHBoYV9fICYmIEdDQ19WRVJTSU9OID4gNDAyMDApIHx8IFwKKwkJ KF9fc3BhcmNfXyAmJiBHQ0NfVkVSU0lPTiA+IDQwMjAwKSB8fCBcCisJCShfX3MzOTBfXyAmJiBH Q0NfVkVSU0lPTiA+IDQwMTAwKSkKKwl2ID0gX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0ICh4LCAx KTsKKyNlbHNlIC8qIE9sZCBnY2MgKi8KKyNpZmRlZiBfX2kzODZfXworCV9fYXNtX18oCSJ4Y2hn bCAgJSVlYXgsKCUlZWN4KSIKKwkJCTogIithIiAodikKKwkJCTogImMiICh4KSk7CisjZWxzZSAv KiBfX2kzODZfXyAqLworI2lmZGVmIF9feDg2XzY0X18KKwlfX2FzbV9fKAkieGNoZ2wgICUlZWF4 LCglJXJjeCkiCisJCQk6ICIrYSIgKHYpCisJCQk6ICJjIiAoeCkpOworI2Vsc2UgLyogX194ODZf NjRfXyAqLworCisjaWZkZWYgX19taXBzX18KKyNpZmRlZiBfX2xpbnV4X18KKwlfX2FzbV9fKCIu c2V0IG1pcHMyXG4iKTsKKyNlbmRpZgorCV9fYXNtX18oImxvb3A6XG5cdCIKKwkJCSJsaQkkdDEs IDEyMzQ1XG5cdCIJLyogdDEgPSAxMjM0NSAqLworCQkJImxsCSUwLCAoJTEpXG5cdCIJLyogdjAg PSAqYTAgKi8KKwkJCSJzYwkkdDEsICglMSlcblx0IgkvKiAqYTAgPSB0MSBpZiAqYTAgaGFzbid0 IGNoYW5nZWQ7IHQxPXN1Y2Nlc3MgKi8KKwkJCSJiZXF6CSR0MSwgbG9vcCIJLyogcmVwZWF0IGlm ICphMCBkaWQgY2hhbmdlICovCisJCQk6ICI9ciIgKHYpCisJCQk6ICJkIiAoeCkKKwkJCTogInQx Iik7CisjaWZkZWYgX19saW51eF9fCisJX19hc21fXygiLnNldCBtaXBzMFxuIik7CisjZW5kaWYK KyNlbHNlIC8qIF9fbWlwc19fICovCisKKyNpZmRlZiBfX3Bvd2VycGNfXworCS8qCisJICogdGhp cyBfX2FzbV9fIHdvcmtzIHdpdGggZ2NjIDIuOTUuMiAobWFjIG9zIHggMTAuMSkuCisJICogdGhp cyBhc3NlbWJseSBsYW5ndWFnZSBkZXN0cm95cyByMCAoMCksIHNvbWUgb3RoZXIgcmVnaXN0ZXIg KHYpLAorCSAqIHI0ICh4KSBhbmQgcjUgKHRlbXApLgorCSAqLworCV9fYXNtX18oIlxuCXN5bmNc biIKKwkiCWxpCXIwLDBcbiIKKwkiCW1yCXI0LCUxCQkvKiAmbC0+dmFsICovXG4iCisJIglsaXMJ cjUsMHhkZWFkCS8qIGFzc2VtYmxlIGNvbnN0YW50IDB4ZGVhZGRlYWQgKi9cbiIKKwkiCW9yaQly NSxyNSwweGRlYWQJLyogXCIgKi9cbiIKKwkidGFzMTpcbiIKKwkiCWRjYmYJcjQscjAJLyogY2Fj aGUgZmx1c2g7IFwiZml4IGZvciA2MDN4IGJ1Z1wiICovXG4iCisJIglsd2FyeAklMCxyNCxyMAkv KiB2ID0gbC0+dmFsIHdpdGggcmVzZXJ2YXRpb24gKi9cbiIKKwkiCWNtcAljcjAsMCwlMCxyMAkv KiB2ID09IDAgKi9cbiIKKwkiCWJuZQl0YXMwXG4iCisJIglzdHdjeC4JcjUscjQscjAgICAvKiBp ZiAobC0+dmFsIHNhbWUpIGwtPnZhbCA9IDB4ZGVhZGRlYWQgKi9cbiIKKwkiCWJuZQl0YXMxXG4i CisJInRhczA6XG4iCisJIglzeW5jXG4iCisJIglpc3luY1xuIgorCTogIj1yIiAodikKKwk6ICJy IiAgKHgpCisJOiAiY2MiLCAibWVtb3J5IiwgInIwIiwgInI0IiwgInI1IgorCSk7CisKKyNlbHNl IC8qIF9fcG93ZXJwY19fICovCisKKyNpZmRlZiBfX3NwYXJjX18KKwlfX2FzbV9fKAkic3RiYXJc blx0IgorCQkJInN3YXAJWyAlMSBdLCAlMCIKKwkJCTogIitnIiAodikKKwkJCTogImciICh4KSk7 CisjZWxzZSAvKiBfX3NwYXJjX18gKi8KKyNlcnJvciAiQXJjaCBub3Qgc3VwcG9ydGVkIHdpdGgg dGhpcyBHQ0MgdmVyc2lvbiIKKyNlbmRpZiAvKiBfX3NwYXJjX18gKi8KKyNlbmRpZiAvKiBfX3Bv d2VycGNfXyAqLworI2VuZGlmIC8qIF9fbWlwc19fICovCisjZW5kaWYgLyogX194ODZfNjRfXyAq LworI2VuZGlmIC8qIF9faTM4Nl9fICovCisjZW5kaWYgLyogT2xkIGdjYyAqLworCXJldHVybiB2 ICE9IDA7Cit9CisK ------=_Part_65249_32558726.1228799621219--