Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 May 2013 07:25:07 -0400 (EDT)
From:      Keith White <kwhite@site.uottawa.ca>
To:        Werner Thie <werner@thieprojects.ch>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Re: Git crash on EABI system.
Message-ID:  <alpine.BSF.2.00.1305170722350.62496@localhost.my.domain>
In-Reply-To: <5195F2CA.2090103@thieprojects.ch>
References:  <A44A52E5-E878-45CD-B032-F111E5E244BA@freebsd.org> <51949698.80205@thieprojects.ch> <2290084B-D302-4489-BB01-817497901E2B@freebsd.org> <5195F2CA.2090103@thieprojects.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 17 May 2013, Werner Thie wrote:

> On 5/16/13 11:04 AM, Tim Kientzle wrote:
>> 
>> On May 16, 2013, at 4:19 AM, Werner Thie wrote:
>> 
>>>> Has anyone else seen this from git on a clang/EABI system?
>>>> 
>>>> Assertion failed: (attr_stack->origin), function prepare_attr_stack, file 
>>>> attr.c, line 630.
>>>> 
>>>> Program received signal SIGABRT, Aborted.
>>>> [Switching to Thread 20c03300 (LWP 100076/git)]
>>>> 0x204b842c in thr_kill () from /lib/libc.so.7
>>>> (gdb) bt
>>>> #0  0x204b842c in thr_kill () from /lib/libc.so.7
>>>> #1  0x2044157c in raise () from /lib/libthr.so.3
>>>> #2  0x20598130 in abort () from /lib/libc.so.7
>>>> #3  0x20574630 in __assert () from /lib/libc.so.7
>>>> #4  0x00076b28 in ?? ()
>>>> 
>>>> I'm planning to do a debug build and see if I can track down any
>>>> more details.
>>> 
>>> Hi Tim
>>> 
>>> just built git out of curiosity after your post on the BBone
>>> 
>>> FreeBSD beaglebone 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r250144M: Sat May 
>>> 4 14:18:20 CEST 2013 
>>> root@xtools:/usr/home/wthie/proj/crochet-freebsd/work/obj/arm.armv6/usr/local/src/sys/BEAGLEBONE-NOWITNESS 
>>> arm
>>> 
>>> git crashes exactly as advertised when cloning a project in
>>> 
>>> Assertion failed: (attr_stack->origin), function prepare_attr_stack, file 
>>> attr.c, line 630.
>> 
>> Thanks for verifying that.
>
> Tim
>
> Maybe you or somebody else can shed some light onto how compiler-rt is used 
> for the ARM platform, specifically why am I getting a
>
> missing symbol __clear_cache
>
> when building ctypes for Python.
>
> I tried several ways to preset WITH_ARM_EABI on make.conf but the def never 
> shows up when compiling Python nor one of the other extension modules. I 
> assume the def is generally set and the missing symbol is courtesy of some 
> other error/omission.
>
> Thxs, Werner
>
> _______________________________________________
> freebsd-arm@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"

To successfully build ctypes for python on arm I have found that
the following "works for me":

===================================================================
--- contrib/compiler-rt/lib/clear_cache.c       (revision 250739)
+++ contrib/compiler-rt/lib/clear_cache.c       (working copy)
@@ -21,6 +21,23 @@
   * specified range.
   */

+/* python ffi routines call it too */
+
+#if defined(__arm__) && defined(__clang__)
+#pragma redefine_extname __clear_cache_c __clear_cache
+void __clear_cache_c(void* start, void* end)
+{
+    extern int sysarch(int number, void *args);
+    struct
+      {
+       unsigned int addr;
+       int          len;
+      } s;
+    s.addr = (unsigned int)(start) & ~0x1f;
+    s.len = (int)((((unsigned int)end + 0x1f) & ~0x1f) - ((unsigned int)start & ~0x1f));
+    (void) sysarch (0, &s);
+}
+#else
  void __clear_cache(void* start, void* end)
  {
  #if __i386__ || __x86_64__
@@ -37,4 +54,5 @@
      #endif
  #endif
  }
+#endif


...keith



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1305170722350.62496>