Building Multi-Threaded Applications Print

 

The version of the uClibc included with the CodeSourcery toolchain does not provide support for POSIX threads. To address this limitation, Emcraft has enabled POSIX threads in uClibc and included the updated library built for Thumb in our uClinux distribution.

In order to build a multi-threaded application and link it with the appropriate uClibc binary, do the following.

After activation of the cross-build environment (. ./ACTIVATE.sh), run the following command (linux-dp.c being the application in the below example):

arm-uclinuxeabi-gcc -o linux-dp linux-dp.c -I \
${INSTALL_ROOT}/A2F/root/usr/include -mcpu=cortex-m3 -mthumb -L \
${INSTALL_ROOT}/A2F/root/usr/lib -pthread

The uClibc version used by Emcraft is v.0.9.33.2.

 

 

Profile Information

Application afterLoad: 0.000 seconds, 0.42 MB
Application afterInitialise: 0.064 seconds, 3.78 MB
Application afterRoute: 0.162 seconds, 10.71 MB
Application afterDispatch: 0.506 seconds, 13.02 MB
Application afterRender: 0.510 seconds, 13.15 MB

Memory Usage

13842856

18 queries logged

  1. SELECT *
      FROM jos_session
      WHERE session_id = '9slj9444ji6cl8mraaru9p19h2'
  2. DELETE
      FROM jos_session
      WHERE ( time < '1761641755' )
  3. SELECT *
      FROM jos_session
      WHERE session_id = '9slj9444ji6cl8mraaru9p19h2'
  4. INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( '9slj9444ji6cl8mraaru9p19h2','1761642655','','0','1','0' )
  5. SELECT *
      FROM jos_components
      WHERE parent = 0
  6. SELECT folder AS type, element AS name, params
      FROM jos_plugins
      WHERE published >= 1
      AND access <= 0
      ORDER BY ordering
  7. SELECT id, parent_id, value, name, lft, rgt
      FROM jos_core_acl_aro_groups
      WHERE id=21
  8. SELECT id, parent_id, value, name, lft, rgt
      FROM jos_core_acl_aro_groups
      WHERE id=23
  9. SELECT id, parent_id, value, name, lft, rgt
      FROM jos_core_acl_aro_groups
      WHERE id=25
  10. SELECT m.*, c.`option` AS component
      FROM jos_menu AS m
      LEFT JOIN jos_components AS c
      ON m.componentid = c.id
      WHERE m.published = 1
      ORDER BY m.sublevel, m.parent, m.ordering
  11. SELECT `id`, `name`,`alias`, `use_feedburner`, `uri`, `feed_type`
      FROM `jos_obrss`
      WHERE `published` = 1
      AND `feeded` = 1
      ORDER BY `ordering`
  12. SELECT template
      FROM jos_templates_menu
      WHERE client_id = 0
      AND (menuid = 0 OR menuid = 453)
      ORDER BY menuid DESC
      LIMIT 0, 1
  13. SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access 
      FROM jos_content AS a
      LEFT JOIN jos_categories AS cc
      ON cc.id = a.catid
      LEFT JOIN jos_sections AS s
      ON s.id = cc.section
      AND s.scope = "content"
      LEFT JOIN jos_users AS u
      ON u.id = a.created_by
      LEFT JOIN jos_groups AS g
      ON a.access = g.id
      WHERE a.id = 292
      AND (  ( a.created_by = 0 )    OR  ( a.state = 1
      AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2025-10-28 09:10:56' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2025-10-28 09:10:56' )   )    OR  ( a.state = -1 )  )
  14. UPDATE jos_content
      SET hits = ( hits + 1 )
      WHERE id='292'
  15. SELECT g.*
      FROM jos_core_acl_aro_groups AS g
      INNER JOIN jos_core_acl_groups_aro_map AS gm
      ON gm.group_id = g.id
      INNER JOIN jos_core_acl_aro AS ao
      ON ao.id = gm.aro_id
      WHERE ao.value='62'
      ORDER BY g.id
  16. SELECT id, parent_id, value, name, lft, rgt
      FROM jos_core_acl_aro_groups
      WHERE id=23
  17. SELECT g.*
      FROM jos_core_acl_aro_groups AS g
      INNER JOIN jos_core_acl_groups_aro_map AS gm
      ON gm.group_id = g.id
      INNER JOIN jos_core_acl_aro AS ao
      ON ao.id = gm.aro_id
      WHERE ao.value='62'
      ORDER BY g.id
  18. SELECT template
      FROM jos_templates_menu
      WHERE client_id = 0
      AND menuid = 0

Language Files Loaded

Untranslated Strings Diagnostic

None

Untranslated Strings Designer

None