commit cf6e97119df5bf17b4a952b257d05d43b7d6ca26
Author: Alex Richardson <arichardson.kde@gmail.com>
Date:   Wed Jan 21 09:10:01 2015 +0000

    Don't crash on FreeBSD when computing stack limits
    
    On FreeBSD pthread_attr_t is a pointer and is dereferenced when calling
    pthread_attr_get_np() so if we don't initialize it will probably crash.
    This is not a problem on glibc systems since there pthread_attr_t is an
    opaque union an doesn't need to be allocated using malloc().
    
    Change-Id: I227685ddf9981974ade08aee8917f7262c301787
    Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>

--- src/qml/jsruntime/qv4engine.cpp
+++ src/qml/jsruntime/qv4engine.cpp
@@ -112,7 +112,8 @@ quintptr getStackLimit()
     void* stackBottom = 0;
     pthread_attr_t attr;
 #if HAVE(PTHREAD_NP_H) && OS(FREEBSD)
-    if (pthread_attr_get_np(pthread_self(), &attr) == 0) {
+    // on FreeBSD pthread_attr_init() must be called otherwise getting the attrs crashes
+    if (pthread_attr_init(&attr) == 0 && pthread_attr_get_np(pthread_self(), &attr) == 0) {
 #else
     if (pthread_getattr_np(pthread_self(), &attr) == 0) {
 #endif
