When mine was whistling (I forget how many windshields ago), I just put some narrowly cut pieces of double-sided carpet tape under it. I have no idea how long it would last since my windshield was replaced not long afterward. But it worked for the time it was in there. With no plans to install a new windshield anytime soon, I'd use a small amount of weatherstrip adhesive.
2002 M roadster