Thanks for the patch! I think your change below isn't enough to avoid all allocation of non-word-aligned addresses for uses that may require word alignment. In particular, the patch only changes the code that runs during process initialization. I've pushed a derived patch that covers a few more cases, and we can hunt down any that remain on demand, as folks stumble across them in testing. ;)

On 05/07/2014 11:52 PM, Evan Danaher wrote:
diff -purN urweb-20131231/src/c/urweb.c urweb-20131231-mine/src/c/urweb.c
--- urweb-20131231/src/c/urweb.c  2013-12-31 07:49:04.000000000 -0800
+++ urweb-20131231-mine/src/c/urweb.c 2014-03-26 15:21:42.121568001 -0700
@@ -1257,12 +1257,13 @@ void *uw_malloc(uw_context ctx, size_t l
    void *result;

    if (ctx->amInitializing) {
-    result = malloc(len);
+    int error = posix_memalign(&result, 4, len);
+    //result = malloc(len);

-    if (result)
+    if (!error)
        return result;
      else
-      uw_error(ctx, FATAL, "uw_malloc: malloc() returns 0");
+      uw_error(ctx, FATAL, "uw_malloc: posix_memalign() returns %d", error);
    } else {
      uw_check_heap(ctx, len);

_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to