lkml.org 
[lkml]   [2008]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 18/46] usb gadget: link fixes for MIDI gadget
    Date
    From: David Brownell <dbrownell@users.sourceforge.net>

    Change how the MIDI gadget driver builds: don't use separate
    compilation, since it works poorly when key parts are library
    code (with init sections etc). Instead be as close as we can
    to "gcc --combine ...".

    Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    drivers/usb/gadget/Makefile | 2 +-
    drivers/usb/gadget/gmidi.c | 15 +++++++++++++++
    2 files changed, 16 insertions(+), 1 deletions(-)

    diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
    index 55f5891..c47204f 100644
    --- a/drivers/usb/gadget/Makefile
    +++ b/drivers/usb/gadget/Makefile
    @@ -27,7 +27,7 @@ C_UTILS = composite.o usbstring.o config.o epautoconf.o
    g_zero-objs := zero.o
    g_ether-objs := ether.o u_ether.o f_subset.o f_ecm.o $(C_UTILS)
    g_serial-objs := serial.o
    -g_midi-objs := gmidi.o usbstring.o config.o epautoconf.o
    +g_midi-objs := gmidi.o
    gadgetfs-objs := inode.o
    g_file_storage-objs := file_storage.o usbstring.o config.o \
    epautoconf.o
    diff --git a/drivers/usb/gadget/gmidi.c b/drivers/usb/gadget/gmidi.c
    index ea8651e..6eee760 100644
    --- a/drivers/usb/gadget/gmidi.c
    +++ b/drivers/usb/gadget/gmidi.c
    @@ -35,6 +35,21 @@

    #include "gadget_chips.h"

    +
    +/*
    + * Kbuild is not very cooperative with respect to linking separately
    + * compiled library objects into one module. So for now we won't use
    + * separate compilation ... ensuring init/exit sections work to shrink
    + * the runtime footprint, and giving us at least some parts of what
    + * a "gcc --combine ... part1.c part2.c part3.c ... " build would.
    + */
    +#include "usbstring.c"
    +#include "config.c"
    +#include "epautoconf.c"
    +
    +/*-------------------------------------------------------------------------*/
    +
    +
    MODULE_AUTHOR("Ben Williamson");
    MODULE_LICENSE("GPL v2");

    --
    1.6.0.2


    \
     
     \ /
      Last update: 2008-10-16 19:25    [W:0.021 / U:30.328 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site