Hi, The people involved already know that the avpriv_open patches from courmisch broke shared builds on Windows in their default configuration (any that statically link the CRT). This happens because with a static CRT the file descriptors cannot be exchanged between libraries.
Since i don't know whats the best way to solve the issue, i would like to offer the options that i see here, to get the discussion going. 1) Rever the whole set. We've been fine without close-on-exec for years, and it causes this major headache. 2) Partly revert the set, only use the flag on "open" calls, no wrapper for fcntl. 3) Call shared builds with static CRT unsupported. I personally do not agree with this, since its a perfectly valid use-case, as it avoids the need for the user to install the CRT version matching your compiler (which usually annoys users) 4) inline avpriv_open, this will most likely end up being rather ugly, especially with the wchar open wrapper for win32 5) Rename to ff_open and clone the symbol into all libraries, like done with some data symbols. Personally, i would favor 2, but as a Windows user that whole flag doesn't exist/work anyway, so i may not see the big advantage of supporting legacy systems with fnctl and the like. 5 would give a universal solution, at a slight binary size overhead, and a bit of uglyness, while 4 is probably even uglier. 3 is unacceptable in my opinion. Anyway, opinions? - Hendrik _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
