In this paper, we consider the problem of resource allocation in the DFT-Spread-OFDMA (DFT-S-OFDMA) uplink. We show that the resource allocation problem can be formulated as a set packing problem, which in general is NP-hard. We propose polynomial-time message-passing based algorithms, one of which is guaranteed to yield a solution that is within a constant fraction of the optimal solution and is also asymptotically optimal in the limit as the number of subcarriers in the system goes to infinity. Our algorithms account for finite input alphabets and non-ideal practical outer codes. Simulations performed to assess their performance demonstrate that they yield near-optimal solutions at a low complexity and with a low memory requirement.