Microware OS-9 v5.3 will have a nice new tool for automating the creation of UltraC Dynamic Shared Libraries (DSL) called dslgen. The dslgen tool along with an updated UltraC compiler, take an I-code library (e.g.
mylib.il) as input, and generates a dsl module (e.g. mylibdsl) and a static stub library (e.g. mylibdsl.l). The tool handles all the hard stuff to dereference shared global data and function pointers.
For Microware OS-9 v5.3 we have updated OpenSSL, OpenSSH, and SNMP to use DSLs. As an example of the potential ROM savings, on PowerPC, DSLs reduced the combined size of all the SNMP utilities by over 79% and OpenSSH by 25% using a generic libcryptodsl. Additional savings could be realized if unused OpenSSL functions were excluded from the libcryptodsl.
Static DSL Beta SSH +
Link 2012/5/21 Change Module SSH NETSNMP NETSNMP
1,290,176 89,960 -93.03% encode_keychange 89,960 89,960
1,652,288 - libcryptodsl 1,652,288 1,652,288 1,652,288
1,104,400 - libnetsnmpagentdsl 1,104,400 1,104,400
274,112 - libsshdsl 274,112 274,112
296,152 - libssldsl 296,152 296,152 296,152
67,096 62,048 -7.52% scp 62,048 62,048
100,480 94,992 -5.46% sftp 94,992 94,992
68,984 67,536 -2.10% sftpserver 67,536 67,536
1,296,440 93,768 -92.77% snmpbulkget 93,768 93,768
1,297,440 96,512 -92.56% snmpbulkwalk 96,512 96,512
1,933,400 291,352 -84.93% snmpd 291,352 291,352
1,302,128 103,048 -92.09% snmpdelta 103,048 103,048
1,297,992 97,680 -92.47% snmpdf 97,680 97,680
1,296,256 95,328 -92.65% snmpget 95,328 95,328
1,296,280 95,352 -92.64% snmpgetnext 95,352 95,352
1,325,992 113,160 -91.47% snmpnetstat 113,160 113,160
1,297,016 94,344 -92.73% snmpset 94,344 94,344
1,297,880 96,952 -92.53% snmpstatus 96,952 96,952
1,304,408 103,480 -92.07% snmptable 103,480 103,480
1,299,768 101,840 -92.16% snmptest 101,840 101,840
1,289,704 105,472 -91.82% snmptranslate 105,472 105,472
1,297,976 101,456 -92.18% snmptrap 101,456 101,456
1,519,424 212,744 -86.00% snmptrapd 212,744 212,744
1,309,592 123,032 -90.61% snmpusm 123,032 123,032
1,308,208 105,632 -91.93% snmpvacm 105,632 105,632
1,297,576 96,648 -92.55% snmpwalk 96,648 96,648
1,503,024 332,632 -77.87% ssh 332,632 332,632
1,515,232 407,312 -73.12% sshd 407,312 407,312
1,240,136 184,016 -85.16% sshkeygen 184,016 184,016
========== ========= ======= ========= ========== ==========
30,052,608 6,693,248 -77.73% DSL Link total 3,371,088 5,270,600 6,693,248
Static Link total 4,494,952 25,557,656 30,052,608
% change for each component -25.00% -79.38% -77.73%
Savings were even a bit higher on other measured processors.
Note: These sizes are still preliminary and will change before the v5.3 release. If for no other reason that we are currently updating OpenSSL to v1.0.1c OpenSSH to v6.0p1. These updates will also be available in v5.3.
This new feature is documented in a new 56 page manual. Get an early copy of the documentation from your local OS-9 Value-Added Reseller:
* Freestation in Asia -
http://www.freestation.co.jp/
* MicroSys in Europe -
http://www.microsys.de/
* RTSI in the United States -
http://www.rtsi.com/