<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16587" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=317383113-23112008>The following patch 
decreases the time that is needed in order to compile opensm from 50 seconds to 
about 5 seconds.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=317383113-23112008>(this assumes that 
files are already in the cache).</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=317383113-23112008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=317383113-23112008>A better solution 
would have been to use precompiled headers. Since this requires changes to every 
source file, I choose not to implement this since we want to keep the files 
aligned also with the Linux code.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=317383113-23112008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=317383113-23112008>Thanks</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=317383113-23112008>Tzachi</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=317383113-23112008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=317383113-23112008>Index: 
Q:/projinf4/trunk/ulp/opensm/user/opensm/osm_files.c<BR>===================================================================<BR>--- 
Q:/projinf4/trunk/ulp/opensm/user/opensm/osm_files.c (revision 0)<BR>+++ 
Q:/projinf4/trunk/ulp/opensm/user/opensm/osm_files.c (revision 3544)<BR>@@ 
-0,0 +1,126 @@<BR>+#include <osm_db_files.c><BR>+#include 
<osm_db_pack.c><BR>+#include <osm_fwd_tbl.c><BR>+#include 
<osm_inform.c><BR>+#include <osm_lid_mgr.c><BR>+#include 
<osm_lin_fwd_rcv.c><BR>+#include 
<osm_lin_fwd_rcv_ctrl.c><BR>+#include 
<osm_lin_fwd_tbl.c><BR>+<BR>+#include <osm_link_mgr.c><BR>+#include 
<osm_matrix.c><BR>+#include <osm_mcast_fwd_rcv.c><BR>+#include 
<osm_mcast_fwd_rcv_ctrl.c><BR>+#include 
<osm_mcast_mgr.c><BR>+#include <osm_mcast_tbl.c><BR>+#include 
<osm_mcm_info.c><BR>+#include <osm_mcm_port.c><BR>+#include 
<osm_mtree.c><BR>+#include <osm_multicast.c><BR>+#include 
<osm_node.c><BR>+#include <osm_node_desc_rcv.c><BR>+#include 
<osm_node_desc_rcv_ctrl.c><BR>+#include 
<osm_node_info_rcv.c><BR>+#include 
<osm_node_info_rcv_ctrl.c><BR>+#include <osm_opensm.c><BR>+#include 
<osm_pkey.c><BR>+#include <osm_pkey_mgr.c><BR>+#include 
<osm_prtn.c><BR>+#include <osm_pkey_rcv.c><BR>+#include 
<osm_pkey_rcv_ctrl.c><BR>+#include <osm_qos.c><BR>+#include 
<osm_port.c><BR>+#include <osm_port_info_rcv.c><BR>+#include 
<osm_port_info_rcv_ctrl.c><BR>+#include 
<osm_remote_sm.c><BR>+#include <osm_req.c><BR>+#include 
<osm_req_ctrl.c><BR>+#include <osm_resp.c><BR>+#include 
<osm_sa.c><BR>+#include <osm_router.c><BR>+#include 
<osm_sa_class_port_info.c><BR>+#include 
<osm_sa_class_port_info_ctrl.c><BR>+#include 
<osm_sa_guidinfo_record.c><BR>+#include 
<osm_sa_guidinfo_record_ctrl.c><BR>+#include 
<osm_sa_informinfo.c><BR>+#include 
<osm_sa_informinfo_ctrl.c><BR>+#include 
<osm_sa_lft_record.c><BR>+#include 
<osm_sa_lft_record_ctrl.c><BR>+#include 
<osm_sa_link_record.c><BR>+#include 
<osm_sa_link_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_mad_ctrl.c><BR>+<BR>+#include 
<osm_sa_mcmember_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_mft_record.c><BR>+<BR>+#include 
<osm_sa_mft_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_node_record.c><BR>+<BR>+#include 
<osm_sa_node_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_path_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_pkey_record.c><BR>+<BR>+#include 
<osm_sa_pkey_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_portinfo_record.c><BR>+<BR>+#include 
<osm_sa_portinfo_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_response.c><BR>+<BR>+#include 
<osm_sa_service_record.c><BR>+<BR>+#include 
<osm_sa_service_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_slvl_record.c><BR>+<BR>+#include 
<osm_sa_slvl_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_sminfo_record.c><BR>+<BR>+#include 
<osm_sa_sminfo_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_sw_info_record.c><BR>+<BR>+#include 
<osm_sa_sw_info_record_ctrl.c><BR>+<BR>+#include 
<osm_sa_vlarb_record.c><BR>+<BR>+#include 
<osm_sa_vlarb_record_ctrl.c><BR>+<BR>+#include 
<osm_service.c><BR>+<BR>+#include 
<osm_slvl_map_rcv.c><BR>+<BR>+#include 
<osm_slvl_map_rcv_ctrl.c><BR>+<BR>+#include <osm_sm.c><BR>+#include 
<osm_sminfo_rcv.c><BR>+#include <osm_sminfo_rcv_ctrl.c><BR>+#include 
<osm_sm_mad_ctrl.c><BR>+#include <osm_sm_state_mgr.c><BR>+#include 
<osm_state_mgr.c><BR>+#include <osm_state_mgr_ctrl.c><BR>+#include 
<osm_subnet.c><BR>+#include <osm_sweep_fail_ctrl.c><BR>+#include 
<osm_sw_info_rcv.c><BR>+#include 
<osm_sw_info_rcv_ctrl.c><BR>+#include <osm_switch.c><BR>+#include 
<osm_trap_rcv.c><BR>+#include <osm_trap_rcv_ctrl.c><BR>+#include 
<osm_ucast_mgr.c><BR>+#include <osm_ucast_updn.c><BR>+#include 
<osm_ucast_file.c><BR>+#include <osm_ucast_ftree.c><BR>+#include 
<osm_vl15intf.c><BR>+#include <osm_vl_arb_rcv.c><BR>+#include 
<osm_vl_arb_rcv_ctrl.c><BR>+#include <st.c><BR>+#include 
<main.c><BR>+#include <cl_event_wheel.c><BR>+#include 
<cl_dispatcher.c><BR>Index: 
Q:/projinf4/trunk/ulp/opensm/user/opensm/SOURCES<BR>===================================================================<BR>--- 
Q:/projinf4/trunk/ulp/opensm/user/opensm/SOURCES (revision 3543)<BR>+++ 
Q:/projinf4/trunk/ulp/opensm/user/opensm/SOURCES (revision 3544)<BR>@@ 
-18,109 +18,11 
@@<BR> SOURCES=\<BR>         osm.mc 
\<BR>         opensm.rc 
\<BR>-        osm_db_files.c 
\<BR>-        osm_db_pack.c 
\<BR>-        osm_drop_mgr.c 
\<BR>-        osm_fwd_tbl.c 
\<BR>-        osm_inform.c 
\<BR>-        osm_lid_mgr.c 
\<BR>-        osm_lin_fwd_rcv.c 
\<BR>-        osm_lin_fwd_rcv_ctrl.c 
\<BR>-        osm_lin_fwd_tbl.c 
\<BR>-        osm_link_mgr.c 
\<BR>-        osm_matrix.c 
\<BR>-        osm_mcast_fwd_rcv.c 
\<BR>-        osm_mcast_fwd_rcv_ctrl.c 
\<BR>-        osm_mcast_mgr.c 
\<BR>-        osm_mcast_tbl.c 
\<BR>-        osm_mcm_info.c 
\<BR>-        osm_mcm_port.c 
\<BR>-        osm_mtree.c 
\<BR>-        osm_multicast.c 
\<BR>-        osm_node.c 
\<BR>-        osm_node_desc_rcv.c 
\<BR>-        osm_node_desc_rcv_ctrl.c 
\<BR>-        osm_node_info_rcv.c 
\<BR>-        osm_node_info_rcv_ctrl.c 
\<BR>-        osm_opensm.c 
\<BR>-        osm_pkey.c 
\<BR>-        osm_pkey_mgr.c 
\<BR>-        osm_prtn.c 
\<BR>-        osm_prtn_config.c 
\<BR>-        osm_pkey_rcv.c 
\<BR>-        osm_pkey_rcv_ctrl.c 
\<BR>-        osm_qos.c 
\<BR>-        osm_port.c 
\<BR>-        osm_port_info_rcv.c 
\<BR>-        osm_port_info_rcv_ctrl.c 
\<BR>-        osm_remote_sm.c 
\<BR>-        osm_req.c 
\<BR>-        osm_req_ctrl.c 
\<BR>-        osm_resp.c 
\<BR>-        osm_sa.c 
\<BR>-        osm_router.c 
\<BR>-        osm_sa_class_port_info.c 
\<BR>-        osm_sa_class_port_info_ctrl.c 
\<BR>-        osm_sa_guidinfo_record.c 
\<BR>-        osm_sa_guidinfo_record_ctrl.c 
\<BR>-        osm_sa_informinfo.c 
\<BR>-        osm_sa_informinfo_ctrl.c 
\<BR>-        osm_sa_lft_record.c 
\<BR>-        osm_sa_lft_record_ctrl.c 
\<BR>-        osm_sa_link_record.c 
\<BR>-        osm_sa_link_record_ctrl.c 
\<BR>-        osm_sa_mad_ctrl.c 
\<BR>-        osm_sa_mcmember_record.c 
\<BR>-        osm_sa_mcmember_record_ctrl.c 
\<BR>-        osm_sa_mft_record.c 
\<BR>-        osm_sa_mft_record_ctrl.c 
\<BR>-        osm_sa_node_record.c 
\<BR>-        osm_sa_node_record_ctrl.c 
\<BR>-        osm_sa_path_record.c 
\<BR>-        osm_sa_path_record_ctrl.c 
\<BR>-        osm_sa_pkey_record.c 
\<BR>-        osm_sa_pkey_record_ctrl.c 
\<BR>-        osm_sa_portinfo_record.c 
\<BR>-        osm_sa_portinfo_record_ctrl.c 
\<BR>-        osm_sa_response.c 
\<BR>-        osm_sa_service_record.c 
\<BR>-        osm_sa_service_record_ctrl.c 
\<BR>-        osm_sa_slvl_record.c 
\<BR>-        osm_sa_slvl_record_ctrl.c 
\<BR>-        osm_sa_sminfo_record.c 
\<BR>-        osm_sa_sminfo_record_ctrl.c 
\<BR>-        osm_sa_sw_info_record.c 
\<BR>-        osm_sa_sw_info_record_ctrl.c 
\<BR>-        osm_sa_vlarb_record.c 
\<BR>-        osm_sa_vlarb_record_ctrl.c 
\<BR>-        osm_service.c 
\<BR>-        osm_slvl_map_rcv.c 
\<BR>-        osm_slvl_map_rcv_ctrl.c 
\<BR>-        osm_sm.c 
\<BR>-        osm_sminfo_rcv.c 
\<BR>-        osm_sminfo_rcv_ctrl.c 
\<BR>-        osm_sm_mad_ctrl.c 
\<BR>-        osm_sm_state_mgr.c 
\<BR>-        osm_state_mgr.c 
\<BR>-        osm_state_mgr_ctrl.c 
\<BR>-        osm_subnet.c 
\<BR>-        osm_sweep_fail_ctrl.c 
\<BR>-        osm_sw_info_rcv.c 
\<BR>-        osm_sw_info_rcv_ctrl.c 
\<BR>-        osm_switch.c 
\<BR>-        osm_trap_rcv.c 
\<BR>-        osm_trap_rcv_ctrl.c 
\<BR>-        osm_ucast_mgr.c 
\<BR>-        osm_ucast_updn.c 
\<BR>-        osm_ucast_file.c 
\<BR>-        osm_ucast_ftree.c 
\<BR>-        osm_vl15intf.c 
\<BR>-        osm_vl_arb_rcv.c 
\<BR>-        osm_vl_arb_rcv_ctrl.c 
\<BR>-        st.c 
\<BR>-        main.c 
\<BR>-        cl_event_wheel.c 
\<BR>-        
cl_dispatcher.c<BR>+ osm_files.c\<BR>+ osm_drop_mgr.c\<BR>+        
osm_prtn_config.c\<BR>+        
osm_sa_mcmember_record.c\<BR>+        
osm_sa_path_record.c\<BR> <BR> OSM_HOME=..<BR> <BR></SPAN></FONT></DIV></BODY></HTML>