SDOCM00108114 Link error when building with DCE on IPU/Vayu
authorRamsey Harris <ramsey@ti.com>
Tue, 3 Jun 2014 17:44:38 +0000 (10:44 -0700)
committerRobert Tivy <rtivy@ti.com>
Wed, 4 Jun 2014 16:56:56 +0000 (09:56 -0700)
The notify setup module for vayu was unconditionally pulling in the
notify shared memory driver which, in turn, pulled in the ti.sdo.ipc
package. This caused undefined references when building an executable
for DCE because it was not supposed to use any IPC modules. The notify
driver now has a check to see if it should pull in IPC modules or not.

packages/ti/sdo/ipc/family/vayu/InterruptIpu.xs
packages/ti/sdo/ipc/family/vayu/NotifySetup.c
packages/ti/sdo/ipc/family/vayu/NotifySetup.xs

index 44d310d9ee8eb1774709a7ae82b1f17e667b5b43..90dff397c6ab4e9ad99d4aa433e0f5c1eee79856 100644 (file)
@@ -53,8 +53,6 @@ function module$use()
 
     var TableInit = xdc.useModule("ti.sdo.ipc.family.vayu.TableInit");
 
-    xdc.useModule("ti.sdo.ipc.family.vayu.NotifySetup");
-
     /* Initisalize procIdTable */
     TableInit.initProcId(this);
 
index 0da08cfba2670f7c5411d4c7d3cd08422732a46b..72e60bdc54f9a410e32648c55b411858ddf9de80 100644 (file)
@@ -38,7 +38,6 @@
 #include <xdc/runtime/Error.h>
 #include <xdc/runtime/Startup.h>
 
-#include <ti/sdo/ipc/Ipc.h>
 #include <ti/sdo/ipc/_Notify.h>
 #include <ti/sdo/ipc/family/vayu/NotifyDriverMbx.h>
 #include <ti/sdo/ipc/notifyDrivers/NotifyDriverShm.h>
index d9f3967bf8b77f0a51dbee4186c6dbac28b640e4..04270296976981c6e9edbc49ae7afc73349fd008 100644 (file)
@@ -96,9 +96,6 @@ function module$use()
         xdc.useModule('ti.sysbios.family.shared.vayu.IntXbar');
     }
 
-    xdc.useModule('ti.sdo.ipc.Ipc');
-    xdc.useModule('ti.sdo.ipc.Notify');
-
     /* initialize procIdTable */
     TableInit.initProcId(this);
 
@@ -265,12 +262,18 @@ function module$use()
         }
     }
 
-    /* load notify drivers into configuration model */
-    if (this.$private.driverMask & this.Driver_SHAREDMEMORY) {
-        xdc.useModule('ti.sdo.ipc.notifyDrivers.NotifyDriverShm');
-    }
-    if (this.$private.driverMask & this.Driver_MAILBOX) {
-        xdc.useModule('ti.sdo.ipc.family.vayu.NotifyDriverMbx');
+    /*  If Notify module is already used, then load notify drivers into
+     *  configuration model. Do *not* useModule the Notify module. Some
+     *  applications require this notify driver but do *not* want the
+     *  ti.sdo.ipc package to be loaded.
+     */
+    if (xdc.module('ti.sdo.ipc.Notify').$used) {
+        if (this.$private.driverMask & this.Driver_SHAREDMEMORY) {
+            xdc.useModule('ti.sdo.ipc.notifyDrivers.NotifyDriverShm');
+        }
+        if (this.$private.driverMask & this.Driver_MAILBOX) {
+            xdc.useModule('ti.sdo.ipc.family.vayu.NotifyDriverMbx');
+        }
     }
 }